Submission #743025

#TimeUsernameProblemLanguageResultExecution timeMemory
743025MauveDistributing Candies (IOI21_candies)C++17
11 / 100
196 ms15044 KiB
#include "candies.h" using namespace std; #include <bits/stdc++.h> #define ll long long int tree[1000000],C[200001]; void update(int node, int l, int r, int L, int R, int val){ if(l>=L && r<=R){ tree[node]=min(tree[node]+val,1000000007); return; } if(l>R || r<L) return; update(node*2,l,(l+r)/2,L,R,val); update(node*2+1,(l+r)/2+1,r,L,R,val); } int asuu(int node, int l, int r, int pos){ if(l==r) return max(0,min(tree[node],C[pos])); if(pos<=(l+r)/2) return max(0,min(tree[node]+asuu(node*2,l,(l+r)/2,pos),C[pos])); else return max(0,min(tree[node]+asuu(node*2+1,(l+r)/2+1,r,pos),C[pos])); } vector<int> distribute_candies(vector<int> c, vector<int> l, vector<int> r, vector<int> v){ int n = c.size(),q=l.size(),i,j,ii,jj,k,m; vector<int> s(n); for(i=1;i<=n;i++) C[i]=c[i-1]; if(q<=2000){ for(i=0;i<q;i++){ for(j=l[i];j<=r[i];j++){ s[j]+=v[i]; if(s[j]<0) s[j]=0; if(s[j]>c[j]) s[j]=c[j]; } } return s; } for(i=0;i<q;i++) update(1,1,n,l[i]+1,r[i]+1,v[i]); for(i=1;i<=n;i++) s[i-1]=asuu(1,1,n,i); return s; }

Compilation message (stderr)

candies.cpp: In function 'std::vector<int> distribute_candies(std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
candies.cpp:21:37: warning: unused variable 'ii' [-Wunused-variable]
   21 |     int n = c.size(),q=l.size(),i,j,ii,jj,k,m;
      |                                     ^~
candies.cpp:21:40: warning: unused variable 'jj' [-Wunused-variable]
   21 |     int n = c.size(),q=l.size(),i,j,ii,jj,k,m;
      |                                        ^~
candies.cpp:21:43: warning: unused variable 'k' [-Wunused-variable]
   21 |     int n = c.size(),q=l.size(),i,j,ii,jj,k,m;
      |                                           ^
candies.cpp:21:45: warning: unused variable 'm' [-Wunused-variable]
   21 |     int n = c.size(),q=l.size(),i,j,ii,jj,k,m;
      |                                             ^
#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...