#include <bits/stdc++.h> #define LL long long using namespace std; const int N = 1000010; struct Quary { int l; int r; int num; }; int n, m, w; int block; int l, r; int now; Quary quary[N]; int pos[N]; int ma[N]; LL cnt[N]; ///Number of records LL ans[N]; bool cmp(Quary a, Quary b) { if(pos[a.l] == pos[b.l]){ return a.r < b.r; } else{ return pos[a.l] < pos[b.l]; } } intmain() { while(scanf("%d%d%d", &n, &m, &w) == 3){ ma[0] = 0; l = 1; r = 0; now = 0; cnt[0] = 1; block = sqrt(n); for(int i = 1; i <= n; i ++){ scanf("%d", &ma[i]); ma [i] = ma [i] ^ ma [i - 1]; pos[i] = i / block; } for(int i = 1; i <= m; i ++){ scanf("%d%d", &quary[i].l, &quary[i].r); quary[i].num = i; } sort(quary + 1, quary + m + 1, cmp); for(int i = 1; i <= m; i ++){ while(l < quary[i].l){ del (l - 1); l ++; } while(l > quary[i].l){ l --; add(l - 1); } while(r < quary[i].r){ r ++; add(r); } while(r > quary[i].r){ del(r); r --; } ans[quary[i].num] = now; } for(int i = 1; i <= m; i ++){ printf("%lld\n", ans[i]); } } return 0; }
[Template] - Team Mo - Thank you, Sister Qing
Guess you like
Origin http://43.154.161.224:23101/article/api/json?id=325559993&siteId=291194637
Recommended
Ranking