社区讨论
why WA on #1
P14361[CSP-S 2025] 社团招新参与者 3已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mhixox1q
- 此快照首次捕获于
- 2025/11/03 17:24 4 个月前
- 此快照最后确认于
- 2025/11/08 07:50 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
struct opo{
int a,b;
}f[200005];
bool cmd(opo a,opo b){
return max(a.a,a.b)>max(b.a,b.b);
}
int main(){
int t;
cin>>t;
while(t--){
int ans=0;
int n;
cin>>n;
for(int i=1;i<=n;i++){
int a,b,c;
cin>>a>>b>>c;
f[i].a=b-a;
f[i].b=c-a;
ans+=a;
}
sort(f+1,f+1+n,cmd);
int a1=n,a2=0,a3=0;
for(int i=1;i<=n;i++){
if(i<=n/2){
if(f[i].a>f[i].b){
a1--;
a2++;
ans+=f[i].a;
}else{
a1--;
a3++;
ans+=f[i].b;
}
}else if(max(f[i].a,f[i].b)>0){
if(f[i].a>f[i].b){
if(a2<n/2){
a2++;
ans+=f[i].a;
a1--;
}else if(a3<n/2&&f[i].b>0){
a3++;
a1--;
ans+=f[i].b;
}
}else if(f[i].a<f[i].b){
if(a3<n/2){
a3++;
a1--;
ans+=f[i].b;
}else if(a2<n/2&&f[i].a>0){
a2++;
a1--;
ans+=f[i].a;
}
}else{
if(a3<a2&&a3<n/2){
a3++;
a1--;
ans+=f[i].b;
}else if(a2<a3&&a2<n/2){
a2++;
a1--;
ans+=f[i].a;
}else{
a3++;
a1--;
ans+=f[i].b;
}
}
}
}
cout<<ans<<endl;
}
}
想的是人从第一组转到第二或三组
回复
共 3 条回复,欢迎继续交流。
正在加载回复...