比赛 2026.8.26 评测结果 AAAAATTTTTTTTTTTTTTT
题目名称 merge 最终得分 25
用户昵称 Ruyi 运行时间 31.517 s
代码语言 C++ 内存使用 3.95 MiB
提交时间 2026-08-26 10:13:43
显示代码纯文本
#include<bits/stdc++.h>
#define ll long long
#define N 501
using namespace std;
ll t,n,a[N];
bool flag;
string tostr(ll x){
    string sss="";
    while(x>0){
        sss=(char)('0'+(x%10))+sss;
        x/=10;
    }
    return sss;
}
void solve(ll x,ll b[],string s,ll cnt){
    if(x==1){
        cout<<"Huoyu"<<endl<<cnt<<endl;
        for(int i=1;i<=cnt;i++){
            while(s[0]!='!'){
                cout<<s[0];
                s.erase(0,1);
            }
            cout<<endl;
            s.erase(0,1);
        }
        flag=true;
        return ;
    }
    for(int i=1;i<=x;i++)
    for(int j=i+1;j<=x;j++)
    for(int k=j+1;k<=x;k++)
    if((b[i]^b[j]^b[k])==0){
        ll res=b[i],c[n],num=i;
        for(int l=i+1;l<=k;l++) res^=b[l];
        for(int l=1;l<i;l++) c[l]=b[l];
        c[num]=res;
        for(int l=k+1;l<=x;l++) c[++num]=b[l];
        string ss=s;
        ss+=tostr(i);
        ss+=' ';
        ss+=tostr(j);
        ss+=' ';
        ss+=tostr(k);
        ss+='!';
        solve(x-k+i,c,ss,cnt+1);
        if(flag) return ;
    }
    return ;
}
int main(){
    freopen("mergeegrem.in","r",stdin);
    freopen("mergeegrem.out","w",stdout);
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    cin>>t;
    while(t--){
        cin>>n;
        for(int i=1;i<=n;i++) cin>>a[i];
        if(n==1){
            cout<<"Huoyu"<<endl<<0<<endl;
            continue;
        }else if(n==2){
            cout<<"Shuiniao"<<endl;
            continue;
        }else if(n==3){
            if((a[1]^a[2]^a[3])==0) cout<<"Huoyu"<<endl<<1<<endl<<"1 2 3"<<endl;
            else cout<<"Shuiniao"<<endl;
            continue;
        }else{
            flag=false;
            solve(n,a,"",0);
            if(!flag) cout<<"Shuiniao"<<endl;
        }
    }
    return 0;
}