比赛 |
20251001国庆欢乐赛1 |
评测结果 |
AWWWWTTTTT |
题目名称 |
有n种物品 |
最终得分 |
10 |
用户昵称 |
对立猫猫对立 |
运行时间 |
9.655 s |
代码语言 |
C++ |
内存使用 |
4.51 MiB |
提交时间 |
2025-10-01 09:08:41 |
显示代码纯文本
#include <bits/stdc++.h>
//#define int long long
#define fora(i, a, b, c) for(int i = a; i <= b; i += c)
#define forb(i, a, b, c) for(int i = a; i >= b; i -= c)
using namespace std;
int n;
struct Node {
int f, idx, flag = 0;
bool operator<(Node b){return f > b.f;}
};
bool cmp(Node a, Node b) {
return a.idx < b.idx;
}
vector<Node> a, b, x;
int chosen = 0;
long long ansa, ansb;
signed main() {
freopen("nit.in", "r", stdin);
freopen("nit.out", "w", stdout);
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
cin >> n;
a.resize(n);
b.resize(n);
x.resize(n);
fora(i, 0, n - 1, 1) cin >> a[i].f >> x[i].f, a[i].idx = x[i].idx = i;
b = a;
while(chosen < 2 * n) {
sort(a.begin(), a.end());
ansa += a[0].f;
a[0].f = 0xffffffff;
b[a[0].idx].f = x[a[0].idx].f;
b[a[0].idx].flag = 1;
sort(b.begin(), b.end());
sort(a.begin(), a.end(), cmp);
ansb += b[0].f;
b[0].f = 0xffffffff;
if(!b[0].flag) a[b[0].idx] = x[b[0].idx], a[b[0].idx].flag = 1;
chosen += 2;
}
cout << ansa - ansb << endl;
return 0;
}