比赛 2026.8.26 评测结果 AAAAATTTTTTTTTTTTTTT
题目名称 merge 最终得分 25
用户昵称 ChenBp 运行时间 31.523 s
代码语言 C++ 内存使用 3.60 MiB
提交时间 2026-08-26 12:56:24
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <vector>
#include <deque>
using namespace std;
vector<int>a;
bool ok=0;
struct node{
    int i,j,k;
    node(int _i,int _j,int _k){
        i=_i,j=_j,k=_k;
    }
    node(){
        i=j=k=0;
    }
};
deque<node>d;
void dfs(vector<int>ve){
    if(ok) return;
    if(ve.size()==1){
        ok=1;
        cout<<"Huoyu\n";
        cout<<d.size()<<"\n";
        while(!d.empty()){
            auto now=d.front();
            d.pop_front();
            cout<<now.i+1<<" "<<now.j+1<<" "<<now.k+1<<"\n";
        }
        return;
    }
    int len=ve.size();
    for(auto i=0;i<len;i++){
        for(int j=i+1;j<len;j++){
            for(int k=j+1;k<len;k++){
                if((ve[i]^ve[j]^ve[k])==0){
                    vector<int>bf=ve;
                    bf.erase(bf.begin()+i,bf.begin()+k+1);
                    int s=0;
                    for(int p=i;p<=k;p++){
                        s^=ve[p];
                    }
                    bf.insert(bf.begin()+i,s);
                    d.emplace_back(i,j,k);
                    dfs(bf);
                    d.pop_back();
                }
            }
        }
    }
}
int main(){
    freopen("mergeegrem.in","r",stdin);
    freopen("mergeegrem.out","w",stdout);
    int t;
    cin>>t;
    while(t--){
        int n;
        cin>>n;
        a.clear();
        d.clear();
        a.resize(n);
        for(int i=0;i<n;i++){
            cin>>a[i];
        }
        ok=0;
        dfs(a);
        if(!ok) cout<<"Shuiniao\n";
    }
    return 0;
}