Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- const int N = 5e5;
- int ar[N+10];
- int st = 1, n, re = 1;
- int Index(int k){
- int idx = (st + ((re) * (k - 1) + n - 1) % n) + 1;
- if(idx > n) idx %= n;
- return idx;
- }
- int main(){
- int m;
- scanf("%d%d", &n, &m);
- for(int i=1;i<=n;i++) scanf("%d", &ar[i]);
- for(int i=1;i<=m;i++){
- char opr;
- scanf(" %c", &opr);
- if(opr == 'a'){
- int x, y;
- scanf("%d%d", &x, &y);
- swap( ar[ Index(x) ] , ar[ Index(y) ] );
- }
- else if(opr == 'b'){
- int x, k;
- scanf("%d%d", &x, &k);
- ar[ Index(x) ] = k;
- }
- else if(opr == 'c'){
- int k;
- scanf("%d", &k);
- st = Index(k);
- re = re * (-1);
- }
- else if(opr == 'q'){
- int x;
- scanf("%d", &x);
- printf("%d\n", ar[ Index(x) ]);
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement