Submission #1014470

#TimeUsernameProblemLanguageResultExecution timeMemory
1014470vjudge1Cake 3 (JOI19_cake3)C++17
0 / 100
1 ms348 KiB
#include<bits/stdc++.h> using namespace std; #define int long long vector<pair<int,int>> cake; int ans; int dostuf(int pen){ ans=0; map<int,pair<int,int>>mp; for(auto[i,j]:cake) if(j>=pen) mp[i].first+=j-pen,mp[i].second++; if(mp.empty())return 0; int prv=mp.begin()->first; pair<int,int>mmin,now,bst; for(auto&[i,j]:mp) j.first-=2*i-2*prv,prv=i, now.first+=j.first,now.second+=j.second,mmin=min(mmin,now), bst=max(bst,{now.first-mmin.first,now.second-mmin.second}); ans=bst.first; return bst.second; } signed main(){ int n,m; cin>>n>>m; cake.resize(n); for(auto&[i,j]:cake) cin>>j>>i; int l=-1e9,r=1e9,res=0; while(l<=r){ int mid=l+r>>1; if(dostuf(mid)>=m) l=mid+1,res=mid; else r=mid-1; } dostuf(res); cout<<ans+res*m; }

Compilation message (stderr)

cake3.cpp: In function 'int main()':
cake3.cpp:28:18: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   28 |         int mid=l+r>>1;
      |                 ~^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...