社区讨论

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 条回复,欢迎继续交流。

正在加载回复...