Submission #1189342

#TimeUsernameProblemLanguageResultExecution timeMemory
1189342Batorgil952Monkey and Apple-trees (IZhO12_apple)C++20
0 / 100
0 ms328 KiB
#include<bits/stdc++.h> #define ll long long #define pb push_back #define mp make_pair using namespace std; struct node{ int l; int r; int val=0; int has=0; node *le=nullptr; node *ri=nullptr; }; void update(node *&curr, int l, int r, int ql, int qr){ if(!curr) curr=new node(); if(qr<l || r<ql) return; if(curr->val==r-l+1){ return; } if(ql<=l && r<=qr){ curr->val=r-l+1; return; } int mid=(l+r)/2; update(curr->le, l, mid, ql, qr); update(curr->ri, mid+1, r, ql, qr); curr->val=curr->le->val+curr->ri->val; } void prop(node *curr, int l, int r){ if(!curr) curr=new node(); if(l==r){ return; } if(!(curr->le)){ curr->le=new node(); } if(!(curr->ri)){ curr->ri=new node(); } int mid=(l+r)/2; if(curr->val==r-l+1){ curr->le->val=mid-l+1; curr->ri->val=r-(mid+1)+1; } if(curr->val==0){ curr->le->val=0; curr->ri->val=0; } } int query(node *curr, int l, int r, int ql, int qr){ if(qr<l || r<ql) return 0; if(ql<=l && r<=qr) return curr->val; int mid=(l+r)/2; prop(curr, l, r); int kk=query(curr->le, l, mid, ql, qr)+query(curr->ri, mid+1, r, ql, qr); return kk; } int main(){ int q, c, x, y, z; node *root=nullptr; scanf("%d",&q); c=0; while(q--){ scanf("%d",&x); scanf("%d",&y); scanf("%d",&z); y+=c; z+=c; if(x==1){ c=query(root, 1, 1000000000, y, z); printf("%d\n", c); } else{ update(root, 1, 1000000000, y, z); } } return 0; }

Compilation message (stderr)

apple.cpp: In function 'int main()':
apple.cpp:69:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   69 |         scanf("%d",&q);
      |         ~~~~~^~~~~~~~~
apple.cpp:73:22: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   73 |                 scanf("%d",&x);
      |                 ~~~~~^~~~~~~~~
apple.cpp:74:22: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   74 |                 scanf("%d",&y);
      |                 ~~~~~^~~~~~~~~
apple.cpp:75:22: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   75 |                 scanf("%d",&z);
      |                 ~~~~~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...