Submission #865426

#TimeUsernameProblemLanguageResultExecution timeMemory
865426vjudge1Sure Bet (CEOI17_sure)C++17
100 / 100
70 ms11936 KiB
#include <map> #include <set> #include <list> #include <cmath> #include <ctime> #include <deque> #include <queue> #include <stack> #include <string> #include <bitset> #include <cstdio> #include <limits> #include <vector> #include <climits> #include <cstring> #include <cstdlib> #include <fstream> #include <numeric> #include <sstream> #include <cassert> #include <iomanip> #include <iostream> #include <algorithm> #include <stdio.h> #include <fstream> #include <unordered_map> using namespace std; typedef long long ll; typedef long double ld; #define all(x) x.begin(),x.end() #define pb push_back #define ent "\n" const int maxn = (int)3e5 + 13; const ll inf = (long long)1e18 + 20; const int mod = (int)1e9 + 7; int n; ld a[maxn],b[maxn]; ld pref[maxn]; ld suf[maxn]; int get(int x,int y){ int ans = x / pow(4,y); ans %= 4; return ans; } void solve(){ cin >> n; for(int i = 1 ; i <= n ; i ++){ cin >> a[i] >> b[i]; } sort(a + 1,a + n + 1); sort(b + 1,b + n + 1); for(int i = 1 ; i <= n ; i ++){ pref[i] = pref[i - 1] + b[i]; } ld mx =0 ,sum = 0,sum1 = 0; int ind = n; for(int i = n ; i >= 1 ; i --){ sum += a[i]; sum1 = 0; for(int j = ind ; j >= 1 ; j --){ sum1 = pref[n] - pref[j - 1]; int kol = (n - i + 1) + (n - j + 1); mx = max(mx,min(sum1,sum) - kol); if(sum1 > sum){ ind = j; break; } } } printf("%.4lf",(double)mx); } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int t = 1; //cin >> t; while(t --){ solve(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...