Submission #1034193

#TimeUsernameProblemLanguageResultExecution timeMemory
1034193MarwenElarbiSure Bet (CEOI17_sure)C++17
100 / 100
56 ms3752 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=1e5+5; #define optimise ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); int main() { optimise; int n; cin>>n; vector<double> a(n),b(n); for (int i = 0; i < n; ++i) { cin>>a[i]; cin>>b[i]; } sort(b.rbegin(),b.rend()); sort(a.rbegin(),a.rend()); pair<double,double> cnt={0,0}; double ans=0; int j=0; for (int i = 0; i < n; ++i) { cnt.fi+=a[i]; while(cnt.se<cnt.fi&&j<n){ ans=max(ans,min(cnt.fi,cnt.se)-(j+i+1)); cnt.se+=b[j]; ans=max(ans,min(cnt.fi,cnt.se)-(j+i+2)); j++; } ans=max(ans,min(cnt.fi,cnt.se)-(j+i+1)); } while(j<n){ ans=max(ans,min(cnt.fi,cnt.se)-(j+n)); cnt.se+=b[j]; ans=max(ans,min(cnt.fi,cnt.se)-(j+n+1)); j++; } cnt={0,0}; j=0; for (int i = 0; i < n; ++i) { while(cnt.se<=cnt.fi&&j<n){ ans=max(ans,min(cnt.fi,cnt.se)-(j+i+1)); cnt.se+=b[j]; ans=max(ans,min(cnt.fi,cnt.se)-(j+i+2)); j++; } cnt.fi+=a[i]; ans=max(ans,min(cnt.fi,cnt.se)-(j+i+1)); } while(j<n){ ans=max(ans,min(cnt.fi,cnt.se)-(j+n)); cnt.se+=b[j]; ans=max(ans,min(cnt.fi,cnt.se)-(j+n+1)); j++; } cout <<fixed<<setprecision(4)<<ans<<endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...