社区讨论
问:这是怎么死的
P14361[CSP-S 2025] 社团招新参与者 4已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @mi449fq6
- 此快照首次捕获于
- 2025/11/18 13:11 4 个月前
- 此快照最后确认于
- 2025/11/18 23:51 4 个月前
考场上想到贪心了打完代码样例也过了然鹅并没有AC
求大佬解惑
CPP求大佬解惑
#include<bits/stdc++.h>
using namespace std;
int t;
int main(){
cin>>t;
while(t--){
short a[100010]={0},b[100010]={0},c[100010]={0},v[100010][3]={0};
int n,s=0;
cin>>n;
for(int i=1;i<=n;i++){
cin>>v[i][0]>>v[i][1]>>v[i][2];
if(v[i][0]>=v[i][1]&&v[i][0]>=v[i][2])a[0]++,a[a[0]]=min(v[i][0]-v[i][1],v[i][0]-v[i][2]),s+=v[i][0];
else if(v[i][1]>=v[i][0]&&v[i][1]>=v[i][2])b[0]++,b[b[0]]=min(v[i][1]-v[i][0],v[i][1]-v[i][2]),s+=v[i][1];
else c[0]++,c[c[0]]=min(v[i][2]-v[i][1],v[i][2]-v[i][0]),s+=v[i][2];
}
if(n/2>=a[0]&&n/2>=b[0]&&n/2>=c[0]){
cout<<s<<endl;
continue;
}
if(n/2<a[0]){
sort(a+1,a+1+a[0]);
for(int i=1;i<=a[0]-n/2;i++)s-=a[i];
cout<<s<<endl;
continue;
}
if(n/2<b[0]){
sort(b+1,b+1+b[0]);
for(int i=1;i<=b[0]-n/2;i++)s-=b[i];
cout<<s<<endl;
continue;
}
if(n/2<c[0]){
sort(c+1,c+1+c[0]);
for(int i=1;i<=c[0]-n/2;i++)s-=c[i];
cout<<s<<endl;
continue;
}
}
return 0;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...