社区讨论
90pts求调 WA#1#4
P14361[CSP-S 2025] 社团招新参与者 1已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mhiyka10
- 此快照首次捕获于
- 2025/11/03 17:49 4 个月前
- 此快照最后确认于
- 2025/11/03 17:49 4 个月前
rt.
CPP#include<bits/stdc++.h>
using namespace std;
int t,n,cnta,cntb,cntc,ans;
struct Node{
int a,b,c;
}a[100001];
bool cmp(Node n1,Node n2){
int l=max(n1.a,max(n1.a,n1.b));
int r=max(n2.a,max(n2.a,n2.b));
int l1,r1;
if(l==n1.a){
l1=max(n1.b,n1.c);
}
if(l==n1.b){
l1=max(n1.a,n1.c);
}
if(l==n1.c){
l1=max(n1.b,n1.a);
}
if(r==n2.a){
r1=max(n2.b,n2.c);
}
if(r==n2.b){
r1=max(n2.a,n2.c);
}
if(r==n2.c){
r1=max(n2.b,n2.a);
}
return (l-l1)>(r-r1);
}
int main(){
cin>>t;
while(t--){
ans=0;
cnta=0;
cntb=0;
cntc=0;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].a>>a[i].b>>a[i].c;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++){
if((max(a[i].a,max(a[i].b,a[i].c))==a[i].a)&&(cnta+1)<=(n/2)){
cnta++;
ans+=a[i].a;
}else if((max(a[i].a,max(a[i].b,a[i].c))==a[i].b)&&(cntb+1)<=(n/2)){
cntb++;
ans+=a[i].b;
}else if((max(a[i].a,max(a[i].b,a[i].c))==a[i].c)&&(cntc+1)<=(n/2)){
cntc++;
ans+=a[i].c;
}else if((max(a[i].a,max(a[i].b,a[i].c))==a[i].c)&&(cntc)>=(n/2)){
if(max(a[i].a,a[i].b)==a[i].a){
cnta++;
ans+=a[i].a;
}else{
cntb++;
ans+=a[i].b;
}
}else if((max(a[i].a,max(a[i].b,a[i].c))==a[i].b)&&(cntb)>=(n/2)){
if(max(a[i].a,a[i].c)==a[i].a){
cnta++;
ans+=a[i].a;
}else{
cntc++;
ans+=a[i].c;
}
}else if((max(a[i].a,max(a[i].b,a[i].c))==a[i].a)&&(cnta)>=(n/2)){
if(max(a[i].c,a[i].b)==a[i].c){
cntc++;
ans+=a[i].c;
}else{
cntb++;
ans+=a[i].b;
}
}
}
cout<<ans<<endl;
}
return 0;
}
代码有点乱,请别介意
回复
共 1 条回复,欢迎继续交流。
正在加载回复...