Submission #1003225

#TimeUsernameProblemLanguageResultExecution timeMemory
1003225ayankarimovaRice Hub (IOI11_ricehub)C++14
0 / 100
22 ms988 KiB
#include "ricehub.h" #include <bits/stdc++.h> using namespace std; #define endl '\n' #define ll long long const ll sz=5005; ll a[sz], b[sz], d[sz], s[sz]; int besthub(int r, int l, int x[], long long k) { for(int i=1; i<=l; i++){ for(int j=0; j<r; j++){ if(i<x[j]) break; d[i]+=i-x[j]; } //cout<<d[i]<<' '; } for(int i=0; i<r; i++) s[x[i]]++; for(int i=1; i<=l; i++) s[i]+=s[i-1]; ll ans=0; for(int i=0; i<r; i++){ for(int j=i; j<r; j++){ ll m=(x[i]+x[j])/2; ll num1=(d[m]-d[x[i]])-i*(m-x[i]); ll num2=(d[x[j]]-d[m])-(s[m]-1)*(x[j]-m); if(num1+num2<=k){ ans=max(ans, (ll)j-i+1); //cout<<i<<' '<<j<<' '<<num1<<' '<<num2<<' '<<ans<<endl; } m=(x[i]+x[j]+1)/2; num1=(d[m]-d[x[i]])-i*(m-x[i]); num2=(d[x[j]]-d[m])-(s[m]-1)*(x[j]-m); if(num1+num2<=k){ ans=max(ans, (ll)j-i+1); //cout<<i<<' '<<j<<' '<<num1<<' '<<num2<<' '<<ans<<endl; } } } return ans; } /* {} [] 5 20 6 1 2 10 12 14 3 */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...