fork download
  1. #include<iostream>
  2. #include<algorithm>
  3. #include<vector>
  4. using namespace std;
  5. int n = 10004;
  6. vector<int> tree[4*n+1];
  7. class segmentTree{
  8.  
  9. public:
  10. //int n;
  11.  
  12. void build(int arr[],int s, int e, int node){
  13. if(s==e){
  14. tree[node].push_back(arr[s]);
  15. return;
  16. }
  17. int mid = (s+e)/2;
  18. build(arr,s,mid,2*node);
  19. build(arr,s,mid,2*node+1);
  20. merge(tree[2*node].begin(),tree[2*node].end(),tree[2*node+1].begin(),tree[2*node].end(),back_inserter(tree[node]));
  21. }
  22. int query(int ss, int se, int l, int r, int k, int node){
  23. if(l>se || r<ss){
  24. return 0;
  25. }
  26. if(ss>=l && se<=r){
  27. return tree[node].size()-(upper_bound(tree[node].begin(),tree[node].end,k)-tree[node].begin());
  28. }
  29. int mid = (ss+se)/2;
  30. int left = query(ss,mid,l,r,k,2*node);
  31. int right = query(mid+1,se,l,r,k,2*node+1);
  32. return left+right;
  33. }
  34. };
  35. int main(){
  36. segmentTree t;
  37. int n;
  38. cin>>n;
  39. int arr[n];
  40. for(int i=0;i<n;i++){
  41. cin>>arr[i];
  42. }
  43. t.build(arr,0,n-1,1);
  44. cin>>q;
  45. int ans = 0;
  46. while(q--){
  47. int i,j,k,l,r;
  48. cin>>i>>j>>k;
  49. l=i^ans;
  50. r=j^ans;
  51. k=k^ans;
  52. ans = t.query(0,n-1,l,r,k,1);
  53. cout<<ans<<endl;
  54. }
  55.  
  56. return 0;
  57. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:6:23: error: array bound is not an integer constant before ‘]’ token
 vector<int> tree[4*n+1];
                       ^
prog.cpp: In member function ‘void segmentTree::build(int*, int, int, int)’:
prog.cpp:14:13: error: ‘tree’ was not declared in this scope
             tree[node].push_back(arr[s]);
             ^~~~
prog.cpp:14:13: note: suggested alternative: ‘free’
             tree[node].push_back(arr[s]);
             ^~~~
             free
prog.cpp:20:15: error: ‘tree’ was not declared in this scope
         merge(tree[2*node].begin(),tree[2*node].end(),tree[2*node+1].begin(),tree[2*node].end(),back_inserter(tree[node]));
               ^~~~
prog.cpp:20:15: note: suggested alternative: ‘free’
         merge(tree[2*node].begin(),tree[2*node].end(),tree[2*node+1].begin(),tree[2*node].end(),back_inserter(tree[node]));
               ^~~~
               free
prog.cpp: In member function ‘int segmentTree::query(int, int, int, int, int, int)’:
prog.cpp:27:20: error: ‘tree’ was not declared in this scope
             return tree[node].size()-(upper_bound(tree[node].begin(),tree[node].end,k)-tree[node].begin());
                    ^~~~
prog.cpp:27:20: note: suggested alternative: ‘free’
             return tree[node].size()-(upper_bound(tree[node].begin(),tree[node].end,k)-tree[node].begin());
                    ^~~~
                    free
prog.cpp: In function ‘int main()’:
prog.cpp:44:10: error: ‘q’ was not declared in this scope
     cin>>q;
          ^
stdout
Standard output is empty