Submission #860220

#TimeUsernameProblemLanguageResultExecution timeMemory
860220naneosmicSure Bet (CEOI17_sure)C++14
0 / 100
0 ms348 KiB
#include <bits/stdc++.h> #define int long long #define float double #define endl "\n" using namespace std; bool f(float a, float b){ return a>b; } float binarySearch(vector<float>arr, float l, float r, float x){ if(arr[l]>=x) return l; if(arr[r]<=x) return r-1; while (l <= r) { float m = l + (r - l) / 2; if(arr[m]<=x && arr[m+1]>=x) return m; if (arr[m+1] < x) l = m + 1; else r = m - 1; } return -1; } signed main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); float n; cin>>n; vector<float>a; vector<float>b; for(float i=0;i<n;i++){ float a1,b1; cin>>a1>>b1; a.push_back(a1); b.push_back(b1); } sort(a.begin(),a.end(),f); sort(b.begin(),b.end(),f); vector<float>b_pref; float s=0; for(float i=0;i<n;i++){ s+=b[i]; b_pref.push_back(s); } s=0; float score=-1; for(float i=0;i<n;i++){ s+=a[i]; float j=binarySearch(b_pref,0,n-1,s); float s1=min(s,b_pref[j])-i-j-2; float s2=min(s,b_pref[j+1])-i-j-3; score=max(score,s2); score=max(score,s1); } printf("%.4lf",(float)score); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...