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

const int N = 1e5+10;

struct node{
	int a,b;
}ob[N];

int n,sa,sb;

priority_queue <node> q1;

priority_queue <int> q2; 

bool operator <(const node &x,const node &y){
	return x.a<y.a;
}

signed main(){
	freopen("nit.in","r",stdin);
	freopen("nit.out","w",stdout); 
	scanf("%lld",&n);
	for(int i=1;i<=n;i++){
		int a,b;
		scanf("%lld%lld",&a,&b);
		q1.push((node){a,b});
	}
	for(int i=1;i<=n;i++){
		if(q1.size()&&q2.size()){
			if(q1.top().a>q2.top()){
				sa+=q1.top().a;
				q2.push(q1.top().b);
				q1.pop();
			}else{
				sa+=q2.top();
				q2.pop();
			}
		}else if(q1.size()){
			sa+=q1.top().a;
			q2.push(q1.top().b);
			q1.pop();
		}else{
			sa+=q2.top();
			q2.pop();
		}
		if(q1.size()&&q2.size()){
			if(q1.top().a>q2.top()){
				sb+=q1.top().a;
				q2.push(q1.top().b);
				q1.pop();
			}else{
				sb+=q2.top();
				q2.pop();
			}
		}else if(q1.size()){
			sb+=q1.top().a;
			q2.push(q1.top().b);
			q1.pop();
		}else{
			sb+=q2.top();
			q2.pop();
		}
	} 
	printf("%lld\n",sa-sb);
	return 0;
}