比赛 NOIP2025模拟赛2 评测结果 AAAAAAAAAAAAAAAAAAAAAAAAA
题目名称 博彩游戏 最终得分 100
用户昵称 梦那边的没好TM 运行时间 1.619 s
代码语言 C++ 内存使用 5.86 MiB
提交时间 2025-11-25 10:28:09
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;

#define ll long long
#define cpy(a,b) copy(begin(a),end(a),begin(b))
#define ld long double
#define dot(x) fixed<<setprecision(x)
#define foru(a,b,c) for(ll a=b;a<=c;a++)

ll n;
vector<ld>a,b;

int main(){
    freopen("wager.in" ,"r",stdin );
    freopen("wager.out","w",stdout);
    cin>>n;
    a.resize(n);
    b.resize(n);
    foru(i,1,n){
        ld x,y;
        cin>>x>>y;
        if(x>1.0)a.push_back(x);
        if(y>1.0)b.push_back(y);
    }
    sort(a.begin(),a.end(),greater<ld>());
    sort(b.begin(),b.end(),greater<ld>());
    ld ma=0,sa=0,sb=0;
    ll pb=0,s_b=b.size();
    foru(pa,0,a.size()){
        while(pb<s_b&&sb<sa){
            ld tmp=sb-pa-pb;
            ma=max(ma,tmp);
            sb+=b[pb++];
        }
        ld tmp=min(sa,sb)-pa-pb;
        ma=max(ma,tmp);
        if(pa<a.size()){
            sa+=a[pa];
        }
    }
    cout<<dot(4)<<ma;
    return 0;
}