比赛 20251001国庆欢乐赛1 评测结果 AWWWWWWWWW
题目名称 有n种物品 最终得分 10
用户昵称 Hollow07 运行时间 0.195 s
代码语言 C++ 内存使用 4.53 MiB
提交时间 2025-10-01 09:57:54
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
#define ll long long

struct node{
    ll x,y,id;
}e[110000];

bool cmp(node aa,node bb){
    return aa.x>bb.x;
}

ll n,a,b,vis[110000];
ll suma,sumb;

priority_queue <ll> q;

int main(){
//    freopen("in.in","r",stdin);
    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);
        e[i].x=a;e[i].y=b;
    }
    sort(e+1,e+n+1,cmp);
    int i=1;
    while (i<=n){
        for (int j=1;j<=2;j++){
            if (i==1&&j==1){
                suma+=e[i].x;
                q.push(e[i].y);
                i++;
                continue;
            }
            if (j==1){
                if (q.empty()){
                    suma+=e[i].x;
                    q.push(e[i].y);
                    i++;
                    continue;
                }
                if (e[i].x>q.top()){
                    suma+=e[i].x;
                    q.push(e[i].y);
                    i++;
                }else{
                    suma+=q.top();
                    q.pop();
                }
            }else{
                if (q.empty()){
                    suma+=e[i].x;
                    q.push(e[i].y);
                    i++;
                    continue;
                }
                if (e[i].x>q.top()){
                    sumb+=e[i].x;
                    q.push(e[i].y);
                    i++;
                }else{
                    sumb+=q.top();
                    q.pop();
                }
            }
        } 
    }
    printf("%lld",suma-sumb);
    return 0;
}