#include <iostream> #include <algorithm> using namespace std; void tasuj(int *karty, int pocz, int kon) { if (kon<=pocz+1) return; int sr=(pocz+kon)/2; tasuj(karty, pocz, sr); tasuj(karty, sr, kon); for (int i=pocz, j=sr; i<sr; ++i, ++j) swap(karty[i], karty[j]); } int main() { ios::sync_with_stdio(false); /* int t[16]; for (int i=0; i<16; ++i) t[i]=i; tasuj(t, 0, 16); for (int i=0; i<16; ++i) cout<<t[i]<<' '; */ int tab[1<<20], n, nn, t; cin>>n>>t; nn=(1<<n); for (int i=0; i<nn; ++i) cin>>tab[i]; if (t%2) reverse(tab, tab+nn); for (int i=0; i<nn; ++i) cout<<tab[i]<<' '; 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 | #include <iostream> #include <algorithm> using namespace std; void tasuj(int *karty, int pocz, int kon) { if (kon<=pocz+1) return; int sr=(pocz+kon)/2; tasuj(karty, pocz, sr); tasuj(karty, sr, kon); for (int i=pocz, j=sr; i<sr; ++i, ++j) swap(karty[i], karty[j]); } int main() { ios::sync_with_stdio(false); /* int t[16]; for (int i=0; i<16; ++i) t[i]=i; tasuj(t, 0, 16); for (int i=0; i<16; ++i) cout<<t[i]<<' '; */ int tab[1<<20], n, nn, t; cin>>n>>t; nn=(1<<n); for (int i=0; i<nn; ++i) cin>>tab[i]; if (t%2) reverse(tab, tab+nn); for (int i=0; i<nn; ++i) cout<<tab[i]<<' '; return 0; } |