比赛 20251001国庆欢乐赛1 评测结果 AAWWWWWWWW
题目名称 有n种物品 最终得分 20
用户昵称 xxz 运行时间 0.222 s
代码语言 C++ 内存使用 4.67 MiB
提交时间 2025-10-01 10:38:08
显示代码纯文本
#include<bits/stdc++.h>
#define int long long
using namespace std;
struct node{
    int a,b,now;
    bool ab;//0:a取,1:b取 
    bool operator < (const node x) const {
        if(now<x.now)return 1;
        if(ab&&x.ab){
            return now<x.now;
        }
        if(ab&&(!x.ab)){
            if(x.b>now)return 0;
        }
        if((!ab)&&x.ab){
            if(b>x.now)return 1; 
        }
        if((!ab)&&(!x.ab)){
            return 0;
        }
    }
}op;
priority_queue <node,vector<node>,less<node> >pq;
int n,a,b,aans,bans,opop;
signed main(){
    freopen("nit.in","r",stdin);freopen("nit.out","w",stdout);
    scanf("%lld",&n);
    for(int i=1;i<=n;i++){
        scanf("%lld%lld",&a,&b);
        op.a=a;op.b=b;op.now=a;
        pq.push(op);
    }
    for(int i=1;i<=n*2;i++){
        op=pq.top();pq.pop();
        opop=op.now;
        if(!op.ab){
            op.now=op.b;
            op.ab=1;
            pq.push(op);
        }
        if(i%2==1){//a取 
            aans+=opop;
        }else{//b取 
            bans+=opop;
        }
    }
    printf("%lld",aans-bans);
    return 0;
}