#include <cstdio>
inline int read() {
static char ch;
while ((ch = getchar()) < '0' || ch > '9');
int res = ch - 48;
while ((ch = getchar()) >= '0' && ch <= '9')
res = res * 10 + ch - 48;
return res;
}
inline void write(int x) {
static char c[15];
int len = 0;
while (x != 0) c[++len] = '0' + (x % 10), x /= 10;
while (len > 0) putchar(c[len--]);
putchar(' ');
}
const int N = 20;
int n, t, m, a[1 << N];
int main() {
n = read(), t = read();
m = 1 << n;
for (int i = 0; i < m; ++i) a[i] = read();
if (t & 1) for (int i = m - 1; i >= 0; --i) write(a[i]);
else for (int i = 0; i < m; ++i) write(a[i]);
putchar('\n');
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 | #include <cstdio> inline int read() { static char ch; while ((ch = getchar()) < '0' || ch > '9'); int res = ch - 48; while ((ch = getchar()) >= '0' && ch <= '9') res = res * 10 + ch - 48; return res; } inline void write(int x) { static char c[15]; int len = 0; while (x != 0) c[++len] = '0' + (x % 10), x /= 10; while (len > 0) putchar(c[len--]); putchar(' '); } const int N = 20; int n, t, m, a[1 << N]; int main() { n = read(), t = read(); m = 1 << n; for (int i = 0; i < m; ++i) a[i] = read(); if (t & 1) for (int i = m - 1; i >= 0; --i) write(a[i]); else for (int i = 0; i < m; ++i) write(a[i]); putchar('\n'); return 0; } |
English