社区讨论
95,WA1,求调
P14361[CSP-S 2025] 社团招新参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mhkswjeg
- 此快照首次捕获于
- 2025/11/05 00:46 4 个月前
- 此快照最后确认于
- 2025/11/05 00:46 4 个月前
我代码只WA1,求帮助
CPP#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll N=6e5;
struct node{
ll a,b,c;
}s[N];
ll t,n,m,k,x,y,z;
bool cmp(node x,node y){
if(max(x.b,x.c)==max(y.b,y.c))return x.a<y.a;
return max(x.b,x.c)>max(y.b,y.c);
}
void solve(){
cin>>n;x=y=z=k=0;
for(int i=1;i<=n;i++){
cin>>s[i].a>>s[i].b>>s[i].c;
s[i].b-=s[i].a;s[i].c-=s[i].a;k+=s[i].a;
}
sort(s+1,s+n+1,cmp);
for(int i=1;i<=n;i++){
if(s[i].b<0 && s[i].c<0 && i>n/2)break;
if(x==n/2){
while(s[i].c>0){
k+=s[i].c;
i++;
}
break;
}
if(y==n/2){
while(s[i].b>0){
k+=s[i].b;
i++;
}
break;
}
if(s[i].b>s[i].c){
x++;k+=s[i].b;
}
else if(s[i].b<s[i].c){
y++;k+=s[i].c;
}
else k+=s[i].b;
}
cout<<k<<endl;
return;
}
int main(){
cin>>t;
while(t--)solve();
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...