| 比赛 |
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;
}