Submission #1308116

#TimeUsernameProblemLanguageResultExecution timeMemory
1308116shisp1Sure Bet (CEOI17_sure)C++20
0 / 100
1 ms568 KiB
#include <bits/stdc++.h> #define ll long long #define pb push_back #define int long long using namespace std; const int mod = 1e9+7; const ll inf = 1e18; const int N = 2e5+5; const double eps = 1e-7; void solve() { int n; cin >> n; vector<double>a(n+1),b(n+1); for(int i = 1;i<=n;i++) { cin >> a[i] >> b[i]; } sort(a.begin()+1,a.end(),greater<double>()); sort(b.begin()+1,b.end(),greater<double>()); vector<double>pr1(n+1), pr2(n+1); for(int i = 1;i<=n;i++) { pr1[i] = pr1[i-1]+a[i]; pr2[i] = pr2[i-1]+b[i]; } double best = -inf; for(int i = 0;i<=n;i++) { int l = 0,r = n; while(r-l>3) { int m1 = l+(r-l)/3; int m2 = r-(r-l)/3; if(pr2[m1]<pr2[m2]) { l = m1; } else { r = m2; } } best = max(best, min(pr1[i],pr2[l])-i-l); } cout<<fixed << setprecision(4) << best; } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int tt=1; //cin >> tt; while(tt--) { solve(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...