#include<bits/stdc++.h>
using namespace std;
string x, y;
int a[300005], b[300005], c[300005], l, r;
void jian(int k[], int s)
{
int ii;
for (ii = s; !k[ii]; ii++)
k[ii] = 1;
k[ii]--;
return;
}
void jia(int k[], int s)
{
int ii;
for (ii = s; k[ii]; ii++)
k[ii] = 0;
k[ii]++;
return;
}
int main()
{
ios::sync_with_stdio(false);
cin >> x >> y;
l = r = 100000;
a[l] = b[r] = 1;
char i;
for (int j = 0; j < x.size(); j++)
{
i = x[j];
switch(i)
{
case '1':
l--;
break;
case '2':
l--;
a[l] = 1;
break;
case 'L':
if (j < x.size() - 1 && x[j + 1] == 'R')
{
j++;
continue;
}
jian(a, l);
break;
case 'R':
if (j < x.size() - 1 && x[j + 1] == 'L')
{
j++;
continue;
}
jia(a, l);
break;
default:
l++;
a[l - 1] = 0;
break;
}
}
for (int j = 0; j < y.size(); j++)
{
i = y[j];
switch(i)
{
case '1':
r--;
break;
case '2':
r--;
b[r] = 1;
break;
case 'L':
if (j < y.size() - 1 && y[j + 1] == 'R')
{
j++;
continue;
}
jian(b, r);
break;
case 'R':
if (j < y.size() - 1 && y[j + 1] == 'L')
{
j++;
continue;
}
jia(b, r);
break;
default:
r++;
b[r - 1] = 0;
break;
}
}
int t = 0;
for (int i = 100000; i > 0; i--)
{
if (a[i] > b[i])
{
t = 1;
break;
}
if (a[i] < b[i])
{
t = 2;
break;
}
}
if (t == 0)
{
cout << 0;
return 0;
}
if (t == 1)
{
int xx = 0;
}
else
{
int xx = 0;
for (int i = min(l, r); i <= 100000; i++)
{
swap(a[i], b[i]);
}
}
long long ans = 200000 - l - r;
long long f = 0;
for (long long i = 99999; i >= max(l, r); i--)
{
f *= 2;
f += a[i] - b[i];
if (f + i * 2 - l - r > ans)
break;
ans = f + i * 2 - l - r;
}
cout << ans;
}
Hack方案: 用{LR}*1000000卡掉