/* dla n==3: 12345678 21436587 43218765 87654321 tasowanie zmienia kolejność na odwrotną parzysta ilość tasowań nic nie zmienia limity: 1<=n<=20 2<=2^n<=2^20 1<=t,a<=1e09<2^30 */ #include <stdio.h> int main() { unsigned n, m, t, i; scanf("%u%u", &n, &t); m = 1u<<n; if (t%2) { unsigned a[m]; for (i=0; i<m; i++) scanf("%u", &a[i]); for (i=0; i<m; i++) printf("%u%c", a[m-1-i], "\n "[i<m-1]); } else { unsigned a; for (i=0; i<m; i++) { scanf("%u", &a); printf("%u%c", a, "\n "[i<m-1]); } } return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | /* dla n==3: 12345678 21436587 43218765 87654321 tasowanie zmienia kolejność na odwrotną parzysta ilość tasowań nic nie zmienia limity: 1<=n<=20 2<=2^n<=2^20 1<=t,a<=1e09<2^30 */ #include <stdio.h> int main() { unsigned n, m, t, i; scanf("%u%u", &n, &t); m = 1u<<n; if (t%2) { unsigned a[m]; for (i=0; i<m; i++) scanf("%u", &a[i]); for (i=0; i<m; i++) printf("%u%c", a[m-1-i], "\n "[i<m-1]); } else { unsigned a; for (i=0; i<m; i++) { scanf("%u", &a); printf("%u%c", a, "\n "[i<m-1]); } } return 0; } |