Submission #843502

# Submission time Handle Problem Language Result Execution time Memory
843502 2023-09-04T03:47:43 Z vjudge1 Sure Bet (CEOI17_sure) C++
20 / 100
1 ms 516 KB
#define COPYRIGHT CODE BY TRINH TUAN NGHIA
#include<bits/stdc++.h>
#define Boost ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#pragma GCC target("popcnt")
#define ll long long
#define endl "\n"
#define st first
#define nd second
#define ii pair <ll,ll>
#define iii pair <ll,ii>
#define iiii pair <ii,ii>
#define pb push_back
#define NAME "surebet"
#define double float
using namespace std;
const ll N = 1e5 + 10;
double a[N];
double b[N];
ll n;
ll na, nb;
double sa, sb;
void inp (){
    cin >> n;
    for (int i = 1; i <= n; ++i){
        cin >> a[i] >> b[i];
    }
}
void solve(){
    double l = 0, r = 1e9;
    sort (a + 1,a + n + 1, greater<>());
    sort (b + 1, b + n + 1, greater<>());
    double ans =0 ;
    for (int i = 0; i <= 2 * n; ++i){
        sa = 0;
        na = 0;
        sb = 0;
        nb = 0;
        l = 0;
        r = 1e9;
        for (int j = 0 ; j <= 50; ++j){
            double m = (l + r) / 2;
            while (sa - i < m and na < n){
                sa += a[na + 1];
                //cout << "Dcm " << sa << " " << m << endl;
                ++na;
            }
            while (sb - i < m and nb < n){
                sb += b[nb + 1];
                ++nb;
            }
            while (sa - i - a[na] >= m){
                sa -= a[na];
                --na;
            }
            while (sb - i - b[nb] >=m){
                sb -= b[nb];
                --nb;
            }
            if (na + nb <= i and sa - i >= m and sb - i >= m){
                l = m;
                ans = max(ans, m);
            }
            else r = m;
        }

    }
    cout << setprecision(4) << fixed << ans;

}
signed main (){
    if (fopen(NAME".inp", "r")){
        freopen(NAME".inp", "r", stdin);
        freopen(NAME".out", "w", stdout);
    }
    Boost;
    inp();
    solve();
}
/*
input

*/

/*
output

*/

Compilation message

sure.cpp: In function 'int main()':
sure.cpp:74:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   74 |         freopen(NAME".inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
sure.cpp:75:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   75 |         freopen(NAME".out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
3 Correct 0 ms 344 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 1 ms 344 KB Output is correct
6 Correct 0 ms 516 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
3 Correct 0 ms 344 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 1 ms 344 KB Output is correct
6 Correct 0 ms 516 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 1 ms 344 KB Output is correct
10 Correct 1 ms 344 KB Output is correct
11 Incorrect 1 ms 348 KB Output isn't correct
12 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
3 Correct 0 ms 344 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 1 ms 344 KB Output is correct
6 Correct 0 ms 516 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 1 ms 344 KB Output is correct
10 Correct 1 ms 344 KB Output is correct
11 Incorrect 1 ms 348 KB Output isn't correct
12 Halted 0 ms 0 KB -