Submission #577122

#TimeUsernameProblemLanguageResultExecution timeMemory
577122andrei_boacaSure Bet (CEOI17_sure)C++14
100 / 100
147 ms3580 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; double a[100005],b[100005],ans; int n; int main() { cin>>n; for(int i=1;i<=n;i++) cin>>a[i]>>b[i]; sort(a+1,a+n+1); reverse(a+1,a+n+1); sort(b+1,b+n+1); reverse(b+1,b+n+1); for(int i=1;i<=n;i++) a[i]+=a[i-1]; for(int i=1;i<=n;i++) b[i]+=b[i-1]; for(int i=1;i<=n;i++) { int st=1; int dr=n; int pozmin=n+1; while(st<=dr) { int mij=(st+dr)/2; if(b[mij]>=a[i]) { pozmin=mij; dr=mij-1; } else st=mij+1; } if(pozmin>n) continue; double x=a[i]-i-pozmin; ans=max(ans,x); } for(int i=1;i<=n;i++) { int st=1; int dr=n; int pozmin=n+1; while(st<=dr) { int mij=(st+dr)/2; if(a[mij]>=b[i]) { pozmin=mij; dr=mij-1; } else st=mij+1; } if(pozmin>n) continue; double x=b[i]-i-pozmin; ans=max(ans,x); } cout<<fixed<<setprecision(4)<<ans; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...