首先抢占(1,1)位置是最优的因为可以占去对方一个1

在(1,1)位置被分完后,各自抢占(1,0)的位置

若num1为偶数,最终结果只和num2_a,num2_b有关

若num2_a>num2_b显然先手赢

若num2_a==num2_b 平局

若num2_a==num2_b-1,因为先手可以抢占(0,1)位置使得平局

否则就是后手赢

若num1为奇数,相等于先手多了一组(1,0)点对num2_a++即可

#include<bits/stdc++.h>
using namespace std;
#define x first
#define y second
typedef pair<int,int> PII;
typedef long long ll;
typedef unsigned long long ull;
typedef vector<string> VS;
typedef vector<int> VI;
typedef vector<vector<int>> VVI;
void solve()
{
    int n;
    cin>>n;
    string s1,s2;
    cin>>s1>>s2;
    int num1 = 0, num2_a = 0, num2_b = 0, num3 = 0;
    //num1表示的是两个都是1的数量,num2_a表示的是上面是1,下面是0的数量
    //num3表示全0的数量
    //优先拿全1,若num2_a比num2_b恰好小1可以先手抢占(0,1)以达到平局
    for(int i=0;i<2*n;++i)
    {
        if(s1[i]=='U'&&s2[i]=='U') num1++;
        else if(s1[i]=='U'&&s2[i]=='D') num2_a++;
        else if(s1[i]=='D'&&s2[i]=='U') num2_b++;
        else num3++;
    }
    if(num1&1)
    {
        num2_a++;
        if(num2_a>num2_b) cout<<"clccle trl!\n";
        else if(num2_a==num2_b||num2_a==num2_b-1) cout<<"orz sarlendy!\n";
        else cout<<"sarlendy tql!\n";
    }
    else 
    {
        if(num2_a>num2_b) cout<<"clccle trl!\n";
        else if(num2_a==num2_b||num2_a==num2_b-1) cout<<"orz sarlendy!\n";
        else cout<<"sarlendy tql!\n";
    }
}
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	int T=1;
	//cin>>T;
	while(T--)
	{
		solve();
	}
}