没啥子好说的,菜鸡一个,dfs

#include<iostream>
using namespace std;
int n,t;
int arr[44],a[44],b[44];//首先,做题先看内存,爆了。。。三个数组,存最初数据和两个子数据 
int dfs(int aa,int bb,int ar)//三个指针, 
{

    if(aa>t/2||bb>t/2)    return 0;
    if(ar>t) return 1;//dfs先写跳出递归条件 
    if(arr[ar]==a[bb+1])
    {
        b[bb+1]=arr[ar];
        if(dfs(aa,bb+1,ar+1))
        {                    //然后就是注意回溯,aabb啥的最开始用的++,然后回溯不方便 
            return 1;
        }    
    }
    a[aa+1]=arr[ar];            //自己体会吧,我参考大佬的代码,然后虽然能过一部分,但在百分之80卡了好久,最后比较迷茫的过了 
    return dfs(aa+1,bb,ar+1); 
}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>t;
        for(int k=1;k<=t;k++)
        {
            cin>>arr[k];
        }
        a[1]=arr[1];
        if(dfs(1,0,2)) cout<<"Frederica Bernkastel"<<endl;
        else cout<<"Furude Rika"<<endl;
    }
    return 0;    
}