社区讨论
15tps求调
P14361[CSP-S 2025] 社团招新参与者 2已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @miqxhrvv
- 此快照首次捕获于
- 2025/12/04 12:21 3 个月前
- 此快照最后确认于
- 2025/12/06 11:55 3 个月前
ACon#1#15#16
CPP#include <iostream>
#include <cstring>
#include <queue>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <map>
#include <vector>
#include <stack>
#include <sstream>
#include <set>
#include <time.h>
#include <stdlib.h>
#include <unordered_map>
#include <string>
#include <list>
#include <utility>
#include <stdio.h>
#include <stdlib.h>
#include <climits>
using namespace std;
struct node{
int a,b,c;
int b1,b2,b3;
int cha;
};
bool cmp(node a,node b){
return a.a>b.a;
}
bool cmp2(node a,node b){
return a.cha<b.cha;
}
int main(){
int t;
cin>>t;
while(t--){
int n;
cin>>n;
node a[n];
for(int i=0;i<n;i++){
int v1,v2,v3;
cin>>v1>>v2>>v3;
int mx = max(v1,max(v2,v3));
if(v1==mx){
a[i].b1=1;
a[i].a=v1;
int mx2 = max(v2,v3);
if(v2==mx2){
a[i].b2=2;
a[i].b=v2;
a[i].c=v3;
a[i].b3=3;
}else{
a[i].b=v3;
a[i].c=v2;
a[i].b3=2;
a[i].b2=3;
}
a[i].cha = mx - mx2;
}
if(v2==mx){
a[i].b1=2;
a[i].a=v2;
int mx2 = max(v1,v3);
if(v3==mx2){
a[i].b2=3;
a[i].b=v3;
a[i].c=v1;
a[i].b3=1;
}else{
a[i].b=v1;
a[i].c=v3;
a[i].b2=1;
a[i].b3=3;
}
a[i].cha = mx - mx2;
}
if(v3==mx){
a[i].b1=3;
a[i].a=v3;
int mx2 = max(v1,v2);
if(v1==mx2){
a[i].b2=2;
a[i].b=v1;
a[i].c=v3;
a[i].b3=3;
}else{
a[i].b=v2;
a[i].c=v1;
a[i].b2=3;
a[i].b3=2;
}
a[i].cha = mx - mx2;
}
}
sort(a,a+n,cmp);
int cnt1=0,cnt2=0,cnt3=0;
int f1=0,f2=0;
int sum = 0;
for(int i=0;i<n;i++){
sum += a[i].a;
if(a[i].b1==1){
cnt1++;
}
if(a[i].b1==2){
cnt2++;
}
if(a[i].b1==3){
cnt3++;
}
}
sort(a,a+n,cmp2);
if(cnt1>n/2){
for(int i=0;i<n;i++){
sum -= a[i].cha;
cnt1--;
if(cnt1 == n/2){
break;
}
}
}
if(cnt2>n/2){
for(int i=0;i<n;i++){
sum -= a[i].cha;
cnt2--;
if(cnt2 == n/2){
break;
}
}
}
if(cnt3>n/2){
for(int i=0;i<n;i++){
sum += a[i].cha;
cnt3--;
if(cnt3 == n/2){
break;
}
}
}
if(cnt1<=n/2&&cnt2<=n/2&&cnt3<=n/2){
cout<<sum<<endl;
}else{
cout<<"-1"<<endl;
}
}
return 0;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...