- 学术
CSPS-2025九十分代码
- @ 2025-11-16 8:39:39
#include <bits/stdc++.h>
#define ll long long
#define int long long
using namespace std;
int a[200005][3];
int aa[200005], a_top;
int bb[200005], b_top;
int cc[200005], c_top;
bool cmp1(int aaaaa, int bbbbb) {
if ((max(a[aaaaa][1], a[aaaaa][2]) - max(a[bbbbb][1], a[bbbbb][2])) < (a[aaaaa][0] - a[bbbbb][0])) return 0;
return 1;
}
bool cmp2(int aaaaa, int bbbbb) {
if ((max(a[aaaaa][0], a[aaaaa][2]) - max(a[bbbbb][0], a[bbbbb][2])) < (a[aaaaa][1] - a[bbbbb][1])) return 0;
return 1;
}
bool cmp3(int aaaaa, int bbbbb) {
if ((max(a[aaaaa][1], a[aaaaa][0]) - max(a[bbbbb][1], a[bbbbb][0])) < (a[aaaaa][2] - a[bbbbb][2])) return 0;
return 1;
}
/*
bool cmp2(int aaaaa, int bbbbb) {
if (a[aaaaa][1] < a[bbbbb][1]) return 1;
if (a[aaaaa][1] == a[bbbbb][1]) {
if (max(a[aaaaa][0], a[aaaaa][2]) > max(a[bbbbb][0], a[bbbbb][2])) return 1;
}
return 0;
}
bool cmp3(int aaaaa, int bbbbb) {
if (a[aaaaa][2] < a[bbbbb][2]) return 1;
if (a[aaaaa][2] == a[bbbbb][2]) {
if (max(a[aaaaa][1], a[aaaaa][0]) > max(a[bbbbb][1], a[bbbbb][0])) return 1;
}
return 0;
}*/
void out1() {
for (int i = 0; i < a_top; i++) cout << aa[i] << ' '; cout << endl;
for (int i = 0; i < b_top; i++) cout << bb[i] << ' '; cout << endl;
for (int i = 0; i < c_top; i++) cout << cc[i] << ' '; cout << endl;
}
void solve() {
a_top = 0, b_top = 0, c_top = 0;
memset(aa, 0, sizeof(aa));memset(bb, 0, sizeof(bb));memset(cc, 0, sizeof(cc));
memset(a, 0, sizeof(a));
int n; cin >> n;
for (int i = 0; i < n; i++) {
for (int j = 0; j < 3; j++) {
cin >> a[i][j];
}
if ((a[i][0] > a[i][1]) && (a[i][0] > a[i][2])) {
aa[a_top++] = i;
}
else if ((a[i][1] >= a[i][0]) && (a[i][1] > a[i][2])) {
bb[b_top++] = i;
}
else if ((a[i][2] >= a[i][1]) && (a[i][2] >= a[i][0])) {
cc[c_top++] = i;
}
else {
cc[c_top++] = i;
}
}
//out1();
ll ans = 0;
if (a_top > (n / 2)) {
sort(aa, aa + a_top, cmp1);
for (int i = 0; (i + (n / 2)) < a_top; i++) {
if (a[aa[i]][1] > a[aa[i]][2]) bb[b_top++] = aa[i];
else cc[c_top++] = aa[i];
}
for (int i = a_top - (n / 2); i < a_top; i++) {
ans += a[aa[i]][0];
}
} else if (b_top > (n / 2)) {
sort(bb, bb + b_top, cmp2);
for (int i = 0; (i + (n / 2)) < b_top; i++) {
if (a[bb[i]][2] > a[bb[i]][0]) cc[c_top++] = bb[i];
else aa[a_top++] = bb[i];
}
for (int i = b_top - (n / 2); i < b_top; i++) {
ans += a[bb[i]][1];
}
} else if (c_top > (n / 2)) {
sort(cc, cc + c_top, cmp3);
for (int i = 0; (i + (n / 2)) < c_top; i++) {
if (a[cc[i]][1] > a[cc[i]][0]) bb[b_top++] = cc[i];
else aa[a_top++] = cc[i];
}
for (int i = c_top - (n / 2); i < c_top; i++) {
ans += a[cc[i]][2];
}
}
//out1();
if (a_top <= (n / 2)) {
for (int i = 0; i < a_top; i++) ans += a[aa[i]][0];
}
if (b_top <= (n / 2)) {
for (int i = 0; i < b_top; i++) ans += a[bb[i]][1];
}
if (c_top <= (n / 2)) {
for (int i = 0; i < c_top; i++) ans += a[cc[i]][2];
}
cout << ans << endl;
}
signed main() {
// freopen("club.in", "r", stdin);
// freopen("club.out", "w", stdout);
int t; cin >> t;
while (t--) solve();
return 0;
}
0 条评论
目前还没有评论...
京公网安备11010802045784号
YIZHIYANG 一只羊 LV 8