Submission #1004658

#TimeUsernameProblemLanguageResultExecution timeMemory
10046580pt1mus23Rice Hub (IOI11_ricehub)C++14
100 / 100
9 ms2652 KiB
/* */ #include "ricehub.h" #include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> using namespace __gnu_pbds; using namespace std; template <class T> using ot = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>; #define ins insert #define pb push_back // #define long long long long long long #define pii pair<long long, long long> #define endl '\n' #define drop(x) cout<<(x)<<endl; return; #define all(x) x.begin(),x.end() const long long sze=1e5 +10; pair<long long,long long> T[sze+10]; const long long inf = INT_MAX; void upd(long long node,long long v,long long y){ node++; while(node<=sze){ T[node].first+=v; T[node].second+=y; node += (node & -node); } } pair<long long,long long> qry(long long node){ node++; pair<long long,long long> res; while(node>0){ res.first+=T[node].first; res.second += T[node].second; node -= (node & -node); } return res; } int besthub(int n, int mxL, int arr[], long long B){ long long ans=1; /* her i ucun ele j tapaqki : j<i j ni goturmesek i+1 right terefden nese ekstra goture bilirik */ long long l =1; long long r = n; vector<long long> pref(n+1,0); for(long long i=0;i<n;i++){ pref[i]+=arr[i]; if(i){ pref[i]+=pref[i-1]; } } auto calc = [&](long long lx,long long rx,long long orta){ return arr[orta]*(orta-lx) - (orta?pref[orta-1] - (lx?pref[lx - 1]:0):0) + pref[rx] - pref[orta] - arr[orta]*(rx-orta); }; while(l<=r){ long long mid = (l+r)/2; bool check=false; long long x = mid%2 ; for(long long i =0;i<=n-mid;i++){ long long c =0; long long lx = i; long long rx = i+mid-1; long long orta = (lx+rx)/2; c = calc(lx,rx,orta); if(c<=B){ check=true; break; } } if(check){ ans=max(ans,mid); l=mid+1; } else{ r=mid-1; } } return ans; }

Compilation message (stderr)

ricehub.cpp: In function 'int besthub(int, int, int*, long long int)':
ricehub.cpp:69:19: warning: unused variable 'x' [-Wunused-variable]
   69 |         long long x = mid%2 ;
      |                   ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...