제출 #1160587

#제출 시각아이디문제언어결과실행 시간메모리
1160587ImperialALENSure Bet (CEOI17_sure)C++20
100 / 100
49 ms1864 KiB
// #pragma GCC optomize ("Ofast") // #pragma GCC optomize ("unroll-loops") // #pragma GCC target ("avx,avx2,fma") #include <bits/stdc++.h> #define F first #define S second #define ll long long #define int long long #define pb push_back #define all(x) (x.begin(),x.end()) #define ios ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); using namespace std; const ll N = 5e5+9, INF = 1e18 , inf = 1e9+9, mod = 1e9+9; double a[N]; double b[N]; signed main(){ ios; int tt=1; // cin>>tt; while(tt--){ int n; cin>>n; for(int i=1;i<=n;i++)cin>>a[i]>>b[i]; sort(a+1,a+1+n); sort(b+1,b+1+n); reverse(a+1,a+1+n); reverse(b+1,b+1+n); for(int i=1;i<=n;i++){ a[i]+=a[i-1]; b[i]+=b[i-1]; } double ans=0.0; for(int i=1;i<=n;i++){ int l=0; int r=n; while(l<=r){ int md=(l+r)/2; double x=a[i]-i-md; double y=b[md]-i-md; if(x>y)l=md+1; else r=md-1; } if(l<=n)ans=max(ans,min(a[i]-i-l,b[l]-i-l)); if(r>=0)ans=max(ans,min(a[i]-i-r,b[r]-i-r)); } cout<<fixed<<setprecision(4)<<ans; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...