首先抢占(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();
}
}