제출 #62708

#제출 시각아이디문제언어결과실행 시간메모리
62708eriksuenderhaufSure Bet (CEOI17_sure)C++11
100 / 100
105 ms16764 KiB
#include <bits/stdc++.h>
#include <unordered_map>
#include <unordered_set>
#include <stack>
#include <queue>
#include <deque>
#include <string>
#include <fstream>
#define ni(n) scanf("%d", &n)
#define nl(n) scanf("%lf", &n)
#define nai(a,n) for (int i = 0; i < (n); i++) ni((a)[i])
#define nal(a,n) for (int i = 0; i < (n); i++) nl((a)[i])
#define case(t) printf("Case #%d: ", (t))
#define pii pair<int, int>
#define vii vector<pii>
#define vi vector<int>
#define pb push_back
#define mp make_pair
#define f first
#define s second
typedef long long ll;
const double pi = acos(-1);
const int MOD = 1e9 + 7;
const int INF = 1e9 + 7;
const int MAXN = 1e5 + 5;
const double eps = 1e-9;
using namespace std;
ll a[MAXN], b[MAXN];

int main()
{
    int n;
    ni(n);
    for (int i = 1; i <= n; i++)
    {
        double x, y;
        nl(x), nl(y);
        x *= 10000;
        y *= 10000;
        a[i] = round(x);
        b[i] = round(y);
    }
    sort(a + 1, a + n + 1);
    sort(b + 1, b + n + 1);
    reverse(a + 1, a + n + 1);
    reverse(b + 1, b + n + 1);
    ll ans = 0;
    int r = 0;
    ll sa = 0, sb = 0;
    for (int l = 0; l <= n; l++)
    {
        sa += a[l];
        while (r < n && min(sa, sb + b[r + 1]) - 10000ll * (l + r + 1) > min(sa, sb) - 10000ll * (l + r))
        {
            r++;
            sb += b[r];
        }
        ans = max(min(sa, sb) - 10000ll * (l + r), ans);
    }
    double tmp = ans / 10000.;
    printf("%.4lf", tmp);
    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

sure.cpp: In function 'int main()':
sure.cpp:9:20: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
 #define ni(n) scanf("%d", &n)
               ~~~~~^~~~~~~~~~
sure.cpp:33:5: note: in expansion of macro 'ni'
     ni(n);
     ^~
sure.cpp:37:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         nl(x), nl(y);
              ^
sure.cpp:37:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...