Submission #226406

#TimeUsernameProblemLanguageResultExecution timeMemory
226406cfalasRice Hub (IOI11_ricehub)C++14
100 / 100
29 ms2560 KiB
#include<bits/stdc++.h> using namespace std; #include "ricehub.h" #define ll long long #define MID ((l+r)/2) int besthub(int n, int rr, int x[], long long b) { ll pre[n+1] = {}; pre[0] = 0; for(int i=0;i<n;i++) pre[i+1] = pre[i] + x[i]; ll ans=0; for(int i=0;i<n;i++){ ll l=i; ll r=n-1; ll m, mm; while(l<=r){ m = MID; ll mid = (i+m)/2; //cout<<"mdian: "<<x[mid]<<endl; //cout<<"sum before: "<<pre[mid]-pre[i]<<endl; ll c = (mid-i) * x[mid] - pre[mid]+pre[i]; //cout<<"sum after: "<<pre[m+1]-pre[mid+1]<<endl; c+= pre[m+1]-pre[mid+1] - (m-mid) * x[mid]; //cout<<i<< " "<<m<<" "<<c<<endl; if(c>b) r = m-1; else mm=m, l=m+1; } ans = max(ans,mm-i+1); } return ans; }

Compilation message (stderr)

ricehub.cpp: In function 'int besthub(int, int, int*, long long int)':
ricehub.cpp:29:19: warning: 'mm' may be used uninitialized in this function [-Wmaybe-uninitialized]
   ans = max(ans,mm-i+1);
                 ~~^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...