#include <stdio.h> #include <algorithm> #include <vector> using namespace std; vector <int> talia; void swapx(int l,int sr,int p); void tasuj(int lewy, int prawy); int main() { int n,t,p; scanf ("%i %i", &n,&t); while (scanf("%i", &p)==1) { talia.push_back(p); } if(t%2) { tasuj(0,talia.size()-1); } for(int i=0;i<talia.size();i++) printf("%i ",talia[i]); return 0; } void tasuj(int lewy, int prawy) { int sr; if(lewy<prawy) { sr=(lewy+prawy)/2; swapx(lewy,sr,prawy); tasuj(lewy, sr); tasuj(sr+1, prawy); } } void swapx(int l,int sr,int p) { for(int i=l;i<=sr;i++) { swap(talia[i],talia[i+sr+1-l]); } }
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 42 | #include <stdio.h> #include <algorithm> #include <vector> using namespace std; vector <int> talia; void swapx(int l,int sr,int p); void tasuj(int lewy, int prawy); int main() { int n,t,p; scanf ("%i %i", &n,&t); while (scanf("%i", &p)==1) { talia.push_back(p); } if(t%2) { tasuj(0,talia.size()-1); } for(int i=0;i<talia.size();i++) printf("%i ",talia[i]); return 0; } void tasuj(int lewy, int prawy) { int sr; if(lewy<prawy) { sr=(lewy+prawy)/2; swapx(lewy,sr,prawy); tasuj(lewy, sr); tasuj(sr+1, prawy); } } void swapx(int l,int sr,int p) { for(int i=l;i<=sr;i++) { swap(talia[i],talia[i+sr+1-l]); } } |