Submission #865374

#TimeUsernameProblemLanguageResultExecution timeMemory
865374vjudge1Sure Bet (CEOI17_sure)C++14
20 / 100
1 ms348 KiB
#include <bits/stdc++.h> #define ll long long #define Sayan ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) #define file(s) if (fopen(s".in", "r")) freopen(s".in", "r", stdin), freopen(s".out", "w", stdout) #define all(a) a.begin() , a.end() #define Int(a,x) a+1 , a+1+x #define sz() size() #define F first #define S second #define pb push_back #define yes cout << "YES\n" #define no cout << "NO\n" #define pii pair<ll,ll> using namespace std ; const ll N = 1e5+5; const ll INF = 1e18; const ll mod = 1e9+7; /* ll binpow(ll a , ll b){ if(b == 0) return 1; if(b%2) return binpow(a , b-1) * a % mod; ll c = binpow(a , b/2) % mod; return c*c%mod; } */ double l[N],r[N]; void solve(){ ll n; cin>>n; double mx=0; set<double>st1,st2; double sum1=0,sum2=0; for(ll i=1;i<=n;i++){ cin>>l[i]>>r[i]; sum1+=l[i]; sum2+=r[i]; st1.insert(l[i]); st2.insert(r[i]); } ll cnt1=n,cnt2=n; mx=max(mx,min(sum1-(n*2),sum2-(n*2))); sort(l+1,l+1+n); reverse(l+1,l+1+n); sort(r+1,r+1+n); reverse(r+1,r+1+n); for(double i=n*2-1;i>=2;i--){ if(cnt1==1){ cnt2--; double mn=*st2.begin(); sum2-=mn; st2.erase(*st2.begin()); } else if(cnt2==1){ cnt1--; double mn=*st1.begin(); sum1-=mn; st1.erase(*st1.begin()); } else { if(sum1>=sum2){ cnt1--; double mn=*st1.begin(); sum1-=mn; st1.erase(*st1.begin()); } else { cnt2--; double mn=*st2.begin(); sum2-=mn; st2.erase(*st2.begin()); } } // cout<<sum1<<" "<<sum2<<" "<<i<<"\n"; mx=max(mx,min(sum1-i,sum2-i)); } cout<<fixed<<setprecision(4)<<mx<<"\n"; } signed main () { Sayan; ll t=1; //cin>>t; while(t--)solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...