Submission #1048131

#TimeUsernameProblemLanguageResultExecution timeMemory
1048131vjudge1Distributing Candies (IOI21_candies)C++17
27 / 100
151 ms21188 KiB
#include "candies.h" #include<bits/stdc++.h> using namespace std; int CONS; vector<int>ans; struct segtree{ struct DATA{ int mx,mn,add; DATA(){ mx=1e9; mn=0; add=0; } DATA(int a,int b,int c){ mx=a,mn=b,add=c; } void apply(DATA k){ mx+=k.add,mn+=k.add,add+=k.add; mx=min(mx,k.mx),mn=min(mn,k.mx); mx=max(mx,k.mn),mn=max(mn,k.mn); add=min(max(add,-CONS),CONS); } } T[1<<19]; void pd(int i){ T[i*2].apply(T[i]); T[i*2+1].apply(T[i]); T[i]=DATA(); } void upd(int i,int l,int r,int ll,int rr,int v){ if(ll<=l&&r<=rr) return T[i].apply((DATA){CONS,0,v}); if(ll>r||l>rr) return; pd(i);upd(i*2,l,l+r>>1,ll,rr,v); upd(i*2+1,l+r+2>>1,r,ll,rr,v); } void traverse(int i,int l,int r){ if(l==r) return ans.push_back(max(T[i].mn,min(T[i].mx,T[i].add))); pd(i);traverse(i*2,l,l+r>>1); traverse(i*2+1,l+r+2>>1,r); } } seg; std::vector<int> distribute_candies(std::vector<int> c, std::vector<int> l, std::vector<int> r, std::vector<int> v) { CONS=c[0]; int n = c.size(),q=l.size(); for(int i=0;i<q;i++) seg.upd(1,0,n-1,l[i],r[i],v[i]); seg.traverse(1,0,n-1); return ans; }

Compilation message (stderr)

candies.cpp: In member function 'void segtree::upd(int, int, int, int, int, int)':
candies.cpp:34:26: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   34 |         pd(i);upd(i*2,l,l+r>>1,ll,rr,v);
      |                         ~^~
candies.cpp:35:22: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   35 |         upd(i*2+1,l+r+2>>1,r,ll,rr,v);
      |                   ~~~^~
candies.cpp: In member function 'void segtree::traverse(int, int, int)':
candies.cpp:39:31: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   39 |         pd(i);traverse(i*2,l,l+r>>1);
      |                              ~^~
candies.cpp:40:27: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   40 |         traverse(i*2+1,l+r+2>>1,r);
      |                        ~~~^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...