Submission #226371

#TimeUsernameProblemLanguageResultExecution timeMemory
226371MKopchevHacker (BOI15_hac)C++14
100 / 100
260 ms8800 KiB
#include<bits/stdc++.h> using namespace std; const int nmax=5e5+42; int n,inp[nmax]; long long pref[nmax]; int take; long long ask(int l,int r) { while(l>n)l=l-n; while(r>n)r=r-n; if(l<=r)return pref[r]-pref[l-1]; return pref[r]+pref[n]-pref[l-1]; } bool can(long long want) { int now=0; for(int i=1;i<=2*n;i++) { if(ask(i,i+take-1)>=want)now++; else now=0; if(now>=take) { return 1; } } return 0; } int main() { scanf("%i",&n); for(int i=1;i<=n;i++)scanf("%i",&inp[i]); take=(n+1)/2; for(int i=1;i<=n;i++)pref[i]=pref[i-1]+inp[i]; long long ok=0,not_ok=1e18; while(not_ok-ok>1) { long long av=(ok+not_ok)/2; if(can(av))ok=av; else not_ok=av; } printf("%lld\n",ok); return 0; }

Compilation message (stderr)

hac.cpp: In function 'int main()':
hac.cpp:38:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%i",&n);
     ~~~~~^~~~~~~~~
hac.cpp:39:31: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     for(int i=1;i<=n;i++)scanf("%i",&inp[i]);
                          ~~~~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...