比赛 2026.8.26 评测结果 AAWAAWWWWWWWWWWWWWWW
题目名称 merge 最终得分 20
用户昵称 杨蕙宇 运行时间 0.725 s
代码语言 C++ 内存使用 3.73 MiB
提交时间 2026-08-26 11:31:55
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int N=510;
int t,n;
struct node{
    int ii,jj,kk;
};
vector<int>v,tmp;
vector<node>op;
bool flag=0;
void solve(){
    if(flag)return;
    if(v.size()==1){
        cout<<"Huoyu\n"<<op.size()<<"\n";
        for(int i=0;i<op.size();i++){
            cout<<op[i].ii<<" "<<op[i].jj<<" "<<op[i].kk<<"\n";
        }
        flag=1;
        return;
    }
    for(int i=0;i<v.size();i++){
        for(int j=i+1;j<v.size();j++){
            for(int k=j+1;k<v.size();k++){
                if((v[i]^v[j]^v[k])==0){
                    int s=0;
                    for(int a=i;a<=k;a++)s=s^v[a];
                    tmp.clear();
                    for(int a=0;a<v.size();a++)tmp.push_back(v[a]);
                    v.clear();
                    for(int a=0;a<i;a++){
                        v.push_back(tmp[a]);
                    }
                    v.push_back(s);
                    for(int a=k+1;a<tmp.size();a++){
                        v.push_back(tmp[a]);
                    }
                    op.push_back((node){i+1,j+1,k+1});
//                    cout<<"v:";
//                    for(int a=0;a<v.size();a++)cout<<v[a]<<" ";
//                    cout<<endl;
//                    cout<<"tmp:";
//                    for(int a=0;a<tmp.size();a++)cout<<tmp[a]<<" ";
//                    cout<<endl;
//                    cout<<"s:";
//                    cout<<s<<"\n";
//                    cout<<i<<" "<<j<<" "<<k<<"\n";
//                    cout<<v[i]<<" "<<v[j]<<" "<<v[k]<<endl;
//                    cout<<"res:"<<(v[i]^v[j]^v[k])<<endl;
                    solve();
                    v.clear();
                    for(int a=0;a<tmp.size();a++)v.push_back(tmp[a]);
                    op.pop_back();
                }
            }
        }
    }
    return;
}
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    freopen("mergeegrem.in","r",stdin);
    freopen("mergeegrem.out","w",stdout);
    cin>>t;
    while(t--){
        cin>>n;
        flag=0;
        v.clear();
        tmp.clear();
        op.clear();
        for(int i=1;i<=n;i++){
            int x;
            cin>>x;
            v.push_back(x);
        }
        if(v.size()==1)cout<<"Huoyu\n"<<0<<"\n";
        else if(v.size()==2)cout<<"Shuiniao\n";
        else if(v.size()==3){
            if(v[0]^v[1]^v[2]==0)cout<<"Huoyu\n"<<1<<"\n"<<1<<" "<<2<<" "<<3<<"\n";
            else cout<<"Shuiniao\n";
        }
        else{
            solve();
            if(flag==0)cout<<"Shuiniao\n";
        }
    }
    return 0;
}
/*
1 5
3 3 1 4 5
*/
/*
10
5
78 78 78 78 78
5
0 261 261 220 220
5
0 465 465 255 255
5
0 199 255 255 199
5
19 19 19 19 19
5
0 457 457 166 166
5
181 181 181 181 181
5
0 177 177 346 346
5
65 65 65 65 65
5
67 67 67 67 67
*/