Submission #1318729

#TimeUsernameProblemLanguageResultExecution timeMemory
1318729jumpRice Hub (IOI11_ricehub)C++20
100 / 100
8 ms568 KiB
#include "ricehub.h" #include<bits/stdc++.h> #define ll long long int besthub(int R, int L, int X[], long long B) { int l=0,r=0,best=1; ll currB=B; int center=0; while(r<R-1){ r+=1; currB-=X[r]-X[center]; while(X[center]==X[center+1])center++; ll movecostre = (ll)(((r)-(center))-((center)-(l)+1))*(ll)(X[center+1]-X[center]); while(movecostre>0&&center!=r){ center+=1; currB+=movecostre; movecostre = (ll)(((r)-(center))-((center)-(l)+1))*(ll)(X[center+1]-X[center]); } while(currB<0){ if(center>l){ currB+=X[center]-X[l]; } else{ center+=1; movecostre = (ll)(((r)-(center)+1))*(ll)(X[center]-X[l]); currB+=movecostre; } l+=1; } while(X[center]==X[center+1])center++; movecostre = (ll)(((r)-(center))-((center)-(l)+1))*(ll)(X[center+1]-X[center]); while(movecostre>0&&center!=r){ center+=1; currB+=movecostre; movecostre = (ll)(((r)-(center))-((center)-(l)+1))*(ll)(X[center+1]-X[center]); } best=std::max(r-l+1,best); //std::cout << currB << ' ' << l << ' ' << center << ' ' << r << '\n'; } return best; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...