Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<fstream>
- #include<deque>
- #include<math.h>
- using namespace std;
- deque < deque < int>> A;
- int main()
- {
- ifstream in("input.txt");
- ofstream out("output.txt");
- int n, q, val;
- in>>n>>q;
- int rad=(int)sqrt(n)+1;
- for(int i=0;i<n;i++)
- {
- int tmp;
- in>>tmp;
- A[i/rad].push_back(tmp);
- }
- for(int i=0;i<q;i++)
- {
- char action;
- in>>action;
- if(action=='c')
- {
- in>>val;
- out<<A[val/rad][val%rad];
- }
- else
- {
- int primo, secondo, primadeq, secondadeq;
- in>>primo>>secondo;
- primadeq=primo/rad;
- secondadeq=secondo/rad;
- if(primo<secondo)
- {
- val=A[primadeq][primo/rad];
- A[primadeq].erase(A[primadeq].begin()+primo%rad);
- int pos=secondo%rad;
- A[secondadeq].insert(A[secondadeq].begin()+pos,val);
- for(int j=primadeq;j<secondadeq;j++)
- {
- A[j].push_back(A[j+1].front());
- A[j+1].pop_front();
- }
- }
- else
- {
- val=A[primadeq][primo/rad];
- int pos=secondo%rad;
- A[secondadeq].insert(A[secondadeq].begin()+pos,val);
- A[primadeq].erase(A[primadeq].begin()+primo%rad);
- for(int j=secondadeq;j<primadeq;j++)
- {
- A[j+1].push_back(A[j].back());
- A[j].pop_back();
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement