Submission #248619

#TimeUsernameProblemLanguageResultExecution timeMemory
248619davi_bartDancing Elephants (IOI11_elephants)C++14
26 / 100
9002 ms2756 KiB
#pragma GCC optimize("O3") #include <bits/stdc++.h> #include "elephants.h" using namespace std; typedef long long ll; //#define int ll mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); int n; vector<int> v(200010); vector<int> p(200010); int dim; void init(int N, int L, int X[]){ n=N; v.resize(N); p.resize(N); for(int i=0;i<N;i++){ p[i]=v[i]=X[i]; } dim=L; } int update(int i,int y){ p.erase(lower_bound(p.begin(),p.end(),v[i])); p.insert(upper_bound(p.begin(),p.end(),y),y); v[i]=y; int pos=p[0]; int tot=1; for(int i=0;i<n;i++){ if(p[i]-pos>dim){ tot++; pos=p[i]; } int d=1; while(i<n-1){ d=min(d,n-i-1); if(p[i+d]-pos<=dim){ i+=d; d*=2; }else break; } } return tot; if(dim>1000000){ while(1){ int w=upper_bound(p.begin(),p.end(),pos+dim)-p.begin(); if(w==p.size())break; tot++; pos=p[w]; } }else{ for(int x:p){ if(x-pos<=dim)continue; tot++; pos=x; } } return tot; }

Compilation message (stderr)

elephants.cpp: In function 'int update(int, int)':
elephants.cpp:45:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       if(w==p.size())break;
          ~^~~~~~~~~~
#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...