比赛 |
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;
}