Submission #1027204

#TimeUsernameProblemLanguageResultExecution timeMemory
1027204vjudge1Sure Bet (CEOI17_sure)C++17
100 / 100
132 ms9812 KiB
#include<bits/stdc++.h> #define ll long long int #define ld long double #define ii int #define pb push_back #define fi first #define se second #define Op operator #define bp __builtin_popcount #define Faster ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); #define endl '\n' #define TT ll tt;cin>>tt;while(tt--){Test_Case();} #define T Test_Case() ; using namespace std; const ii N = 2e5 , M = 1e6 , mod = 1e9 + 7 , Ones = 1 , Zero = 0; const ll oo = 1e18 ; ld a[N + 5] , b[N + 5] , Prea[N + 5] , Preb[N + 5] , ans = 0 ; bool comp(ld aa , ld bb) { return aa > bb ; } void Test_Case(){ ii n ; cin >> n ; for(ii i = 1 ; i <= n ; i ++ ) { cin >> a[i] >> b[i] ; a[i] -= 1.0 , b[i] -= 1.0 ; } sort(a + 1 , a + n + 1 , comp) ; sort(b + 1 , b + n + 1 , comp) ; for(ii i = 1 ; i <= n ; i ++) { Prea[i] = Prea[i - 1] + a[i] ; } ld s = 0 ; for(ii i = 1 ; i <= n ; i ++) { ii l = 1 , r = n , idx = n + 1 ; s += b[i] ; while(l <= r) { ii m1 = l + (r - l) / 3 , m2 = r - (r - l) / 3 ; if(min(s - m1 , Prea[m1] - i) < min(s - m2 , Prea[m2] - i)) { l = m1 + 1 ; } else r = m2 - 1 , idx = m2 ; } ans = max(ans , min(s - idx , Prea[idx] - i)) ; } cout << setprecision(4) << fixed << ans << endl ; } int main(){ Faster T ; } ////// // // // // ////// // // // // // // ////// ////// //// // // // // // // ////// // // // ////////
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...