Submission #653572

#TimeUsernameProblemLanguageResultExecution timeMemory
653572amukkalirMonkey and Apple-trees (IZhO12_apple)C++17
0 / 100
536 ms262144 KiB
#include <bits/stdc++.h> using namespace std; const int nax = 1e9; struct node { node *l_child, *r_child; int val; node () { l_child=r_child=nullptr; val=0; } }; node *tree, *lazy; int m; void verif(node* &u) { if(!u) u=new node; } void cek (node* &tr, node* &lz, int l, int r) { verif(tr); verif(lz); if(lz->val==0)return; tr->val=r-l+1; if(l!=r) { verif(lz->l_child); lz->l_child->val = 1; verif(lz->r_child); lz->r_child->val = 1; } lz->val=0; } void upd (int fr, int to, node* &now=tree, node* &now_lazy=lazy, int l = 1, int r = nax) { cek(now, now_lazy, l, r); if (fr <= l && r <= to) { now_lazy->val = 1; cek(now, now_lazy, l, r); } else if (r < fr || l > to) { return; } else { int m = (l+r)>>1; upd(fr, to, now->l_child, now_lazy->l_child, l, m); upd(fr, to, now->r_child, now_lazy->r_child, m+1,r); now->val = now->l_child->val + now->r_child->val; } } int get (int fr, int to, node* &now=tree, node* &now_lazy=lazy, int l = 1, int r = nax) { cek(now, now_lazy, l, r); if (fr <= l && r <= to) return now->val; else if (r < fr || l > to) return 0; else { int m = (l+r)>>1; return get(fr, to, now->l_child, now_lazy->l_child, l, m) + get(fr, to, now->r_child, now_lazy->r_child, m+1, r); } } signed main() { verif(tree); verif(lazy); scanf("%d", &m); int c = 0; while (m--) { int d, x, y; scanf("%d %d %d", &d, &x, &y); x += c; y += c; if (d == 1) { int ans = get(x, y); c = ans; printf("%d\n",ans); } else { upd(x,y); } } } /* */

Compilation message (stderr)

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