Submission #443459

#TimeUsernameProblemLanguageResultExecution timeMemory
443459urd05Distributing Candies (IOI21_candies)C++17
27 / 100
788 ms9284 KiB
#include "candies.h" #include <bits/stdc++.h> using namespace std; vector<int> vec; vector<int> distribute_candies(vector<int> c,vector<int> l, vector<int> r, vector<int> v) { int n = c.size(); vec.resize(n); for(int i=0;i<n;i++) { vec[i]=0; } int q=v.size(); int sq=450; for(int i=0;i<q;i+=sq) { int lq=i; int rq=min(i+sq-1,q-1); vector<int> lr; lr.push_back(0); lr.push_back(n); for(int j=lq;j<=rq;j++) { lr.push_back(l[j]); lr.push_back(r[j]+1); } sort(lr.begin(),lr.end()); lr.erase(unique(lr.begin(),lr.end()),lr.end()); for(int j=0;j+1<lr.size();j++) { int del=0; int ube=c[0]; int umax=c[0]; int dbe=0; int dmin=0; for(int k=lq;k<=rq;k++) { if (l[k]<=lr[j]&&r[k]>=lr[j+1]-1) { del+=v[k]; umax=min(umax,c[0]-del); dmin=max(dmin,-del); ube+=v[k]; dbe+=v[k]; ube=max(0,ube); ube=min(c[0],ube); dbe=max(0,dbe); dbe=min(c[0],dbe); } } for(int k=lr[j];k<lr[j+1];k++) { if (vec[k]<=dmin) { vec[k]=dbe; } else if (vec[k]>=umax) { vec[k]=ube; } else { vec[k]+=del; } } } } return vec; }

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:27:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   27 |         for(int j=0;j+1<lr.size();j++) {
      |                     ~~~^~~~~~~~~~
#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...