记录编号 588328 评测结果 AAAAAAAAAA
题目名称 3977.神奇的宝物 最终得分 100
用户昵称 snow 是否通过 通过
代码语言 C++ 运行时间 0.640 s
提交时间 2024-05-28 20:14:48 内存使用 4.82 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,a[100005],b[100005],c[100005];//n表示宝物种类,a为先手宝物,b为后手宝物,c为差值 
long long numa=0,numb=0;
int main()
{
    freopen("treasure.in","r",stdin);
    freopen("treasure.out","w",stdout);
    cin>>n;
    for(int i=0;i<n;++i)
    {
        cin>>a[i]>>b[i];
        numa+=a[i]; 
        numb+=a[i];//numa,numb为双方的不可能性(指单独一个人全取先手值)最大收益
        c[i]=a[i]-b[i];
    }
    sort(c+0,c+n);
    for(int i=0;i<=n;++i)
    {
        if(i%2)
        {
            numa-=c[i];
        }
        else
        {
            numb-=c[i];
        }
    }
    cout<<max(numa,numb)<<' '<<min(numa,numb);//先手获利值一定是较大方,因此要套上max,min
    return 0;
}