Submission #1032993

#TimeUsernameProblemLanguageResultExecution timeMemory
1032993MarwenElarbiSure Bet (CEOI17_sure)C++17
0 / 100
1 ms348 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> using namespace std; using namespace __gnu_pbds; #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #define fi first #define se second #define ll long long #define pb push_back #define ii pair<int,int> template <class T> using Tree = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>; const int nax=1e6+5; #define optimise ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); int main() { optimise; int n; cin>>n; pair<double,double> tab[n+1]; set<pair<double,double>> a; set<pair<double,double>> b; for (int i = 1; i <= n; ++i) { cin>>tab[i].fi>>tab[i].se; a.insert({tab[i].fi,tab[i].se}); b.insert({tab[i].se,tab[i].fi}); } pair<double,double> cur={0,0}; double ans=0; while(!a.empty()){ if(cur.fi<cur.se){ cur.fi--; cur.se--; cur.fi+=a.rbegin()->fi; b.erase({a.rbegin()->se,a.rbegin()->fi}); a.erase(*a.rbegin()); }else if(cur.se<cur.fi){ cur.fi--; cur.se--; cur.se+=b.rbegin()->fi; a.erase({b.rbegin()->se,b.rbegin()->fi}); b.erase(*b.rbegin()); }else{ if(a.rbegin()->fi<b.rbegin()->fi){ cur.fi--; cur.se--; cur.fi+=a.rbegin()->fi; b.erase({a.rbegin()->se,a.rbegin()->fi}); a.erase(*a.rbegin()); }else{ cur.fi--; cur.se--; cur.se+=b.rbegin()->fi; a.erase({b.rbegin()->se,b.rbegin()->fi}); b.erase(*b.rbegin()); } } ans=max(ans,min(cur.fi,cur.se)); } cout <<fixed<<setprecision(4)<< ans<<endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...