自学内容网 自学内容网

C. Have Your Cake and Eat It Too(cf955)

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
void sol(){
    int n;cin>>n;ll sum=0;
    ll a[5][n+10];
    for(int i=0;i<3;i++){
        for(int j=0;j<n;j++){
            cin>>a[i][j];
            if(i==0)sum+=a[i][j];
        }
    }
    array<int,3>p{0,1,2};//三个人的先后顺序
    do{
        array<int,3>l{},r{};
        int cur=0;bool ok=true;
        for(int i=0;i<3;i++){
            l[p[i]]=cur+1;
            ll s=0;
            while(s<(sum+2)/3&&cur<n){
                s+=a[p[i]][cur++];

            }
            if(s<(sum+2)/3){
                ok=false;break;
            }
            r[p[i]]=cur;
        }
        if(ok){
            for(int i=0;i<3;i++){
                cout<<l[i]<<" "<<r[i]<<" ";
            }
            cout<<endl;return;
        }
    }while(next_permutation(p.begin(),p.end()));
    cout<<"-1"<<endl;
}
int main(){
    int t;cin>>t;
    while(t--)sol();
    return 0;
}


原文地址:https://blog.csdn.net/m0_74310050/article/details/140332630

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!