记录编号 606657 评测结果 AAAAAAAAAA
题目名称 3719.有n种物品 最终得分 100
用户昵称 Gravatar会挽弯弓满月 是否通过 通过
代码语言 C++ 运行时间 0.167 s
提交时间 2025-10-01 16:45:55 内存使用 4.42 MiB
显示代码纯文本
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
const ll N=1e5+10;
ll read(){
	ll x=0,f=1;
	char c=getchar();
	while(c<48||c>57){
		if(c==45) f=-1;
		c=getchar();
	}
	while(c>=48&&c<=57){
		x=x*10+c-48;
		c=getchar();
	}
	return f*x;
}
ll n;
struct node{
	ll a,b,v;
}s[N];
bool cmp(node x,node y){
	return x.v>y.v;
}
ll sum1,sum2;
int main(){
	freopen("nit.in","r",stdin);
	freopen("nit.out","w",stdout);
	n=read();
	for(ll i=1;i<=n;i++){
		s[i].a=read();
		s[i].b=read();
		s[i].v=s[i].a-s[i].b;
	}
	sort(s+1,s+n+1,cmp);
	for(ll i=1;i<=n;i++){
		if(s[i].v>0){
			if(i&1){
				sum1+=s[i].a;
				sum2+=s[i].b;
			}
			else{
				sum1+=s[i].b;
				sum2+=s[i].a;
			}
		}
		else{
			sum1+=s[i].a;
			sum2+=s[i].b;
		}
	}
	printf("%lld",sum1-sum2);
	return 0;
}