# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
533598 | 2022-03-06T14:59:25 Z | groshi | Rice Hub (IOI11_ricehub) | C++17 | 0 ms | 0 KB |
#include<iostream> using namespace std; long long prefixy[100100]; long long mam[100100]; long long oblicz(int x,int y) { int srodek=(x+y)/2; long long wynik_pomoc=mam[srodek]*(srodek-x)-(prefixy[srodek-1]-prefixy[x-1]); long long wynik_pom=(prefixy[y]-prefixy[srodek])-mam[srodek]*(y-srodek); return wynik_pomoc+wynik_pom; } int besthub(int n,int l,long long tak[],long long b) { long long wynik=0,suma=0,j=1,wynik_pom; for(int i=0;i<n;i++) mam[i+1]=tak[i]; for(int i=1;i<=n;i++) { prefixy[i]=prefixy[i-1]; prefixy[i]+=mam[i]; } for(int i=1;i<=n;i++) { wynik_pom=oblicz(i,j+1); while(j<n && wynik_pom<=b) { j++; wynik_pom=oblicz(i,j+1); } if((j-i+1)>wynik) wynik=(j-i+1); } return wynik; }