Submission #1003750

#TimeUsernameProblemLanguageResultExecution timeMemory
10037500pt1mus23Rice Hub (IOI11_ricehub)C++14
68 / 100
10 ms2140 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 int long long int #define pii pair<int, int> #define endl '\n' #define drop(x) cout<<(x)<<endl; return; #define all(x) x.begin(),x.end() const int sze=1e5 +10; pair<int,int> T[sze+10]; const int inf = INT_MAX; void upd(int node,int v,int y){ node++; while(node<=sze){ T[node].first+=v; T[node].second+=y; node += (node & -node); } } pair<int,int> qry(int node){ node++; pair<int,int> 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){ int ans=1; /* her i ucun ele j tapaqki : j<i j ni goturmesek i+1 right terefden nese ekstra goture bilirik */ int l =1; int r = n; vector<int> pref(n+1,0); for(int i=0;i<n;i++){ pref[i]+=arr[i]; if(i){ pref[i]+=pref[i-1]; } } auto calc = [&](int lx,int rx,int orta){ int right = pref[rx] - pref[orta]; int left = (orta?pref[orta - 1] - (lx?pref[lx - 1]:0):0); return arr[orta]*(orta-lx) - left + right - arr[orta]*(rx-orta); }; while(l<=r){ int mid = (l+r)/2; bool check=false; int x = mid%2 ; for(int i =0;i<=n-mid;i++){ int c =0; int lx = i; int rx = i+mid-1; int 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:71:13: warning: unused variable 'x' [-Wunused-variable]
   71 |         int 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...