#include <algorithm> #include <cstdio> using namespace std; int A[(1 << 20) + 1]; int main() { int n, t; scanf("%d %d", &n, &t); // printf("%d\n", (1 << 20)); for (int i = 0; i < (1 << n); i++) { scanf("%d", A + i); } if (t % 2 == 1) { for (int i = 0; i < (1 << (n - 1)); i++) { swap(A[(1 << n) - i - 1], A[i]); } } for (int i = 0; i < (1 << n); i++) { printf("%d ", A[i]); } // printf("\n"); }
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 | #include <algorithm> #include <cstdio> using namespace std; int A[(1 << 20) + 1]; int main() { int n, t; scanf("%d %d", &n, &t); // printf("%d\n", (1 << 20)); for (int i = 0; i < (1 << n); i++) { scanf("%d", A + i); } if (t % 2 == 1) { for (int i = 0; i < (1 << (n - 1)); i++) { swap(A[(1 << n) - i - 1], A[i]); } } for (int i = 0; i < (1 << n); i++) { printf("%d ", A[i]); } // printf("\n"); } |