Submission #229561

#TimeUsernameProblemLanguageResultExecution timeMemory
229561monus1042Rice Hub (IOI11_ricehub)C++17
17 / 100
23 ms768 KiB
#include <bits/stdc++.h> #include "ricehub.h" using namespace std; #define ll long long int besthub(int R, int L, int X[], long long B) { int ans=1; ll cost=0; int l=0,r=0; for (int i=1; i<R; i++){ if (cost + (ll)(X[i] - X[0]) <= B){ ans++; cost += (ll)(X[i] - X[0]); r++; }else break; } for (int i=1; i<R; i++){ ll dist=X[i] - X[i-1]; if (r<i){ r=i; }else{ cost -= dist * (ll)(r-(i-1)); } cost += dist * (ll)(i-l); if (cost == B) {} else if (cost < B){ while(1){ if (r+1 < R && cost + (ll)(X[r+1] - X[i]) <= B){ cost += (ll)(X[r+1] - X[i]); r++; }else break; } }else{ // cost > B while(1){ if (cost <= B) break; cost -= (ll)(X[i] - X[l]); l++; } //try to expand while(1){ if (r+1 < R && cost + (ll)(X[r+1] - X[i]) <= B){ cost += (ll)(X[r+1] - X[i]); r++; }else break; } } ans=max(ans, r-l+1); } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...