Pagini recente » Cod sursa (job #2942805) | Cod sursa (job #1532007) | Cod sursa (job #53040) | Cod sursa (job #1964947) | Cod sursa (job #1733418)
#include <bits/stdc++.h>
using namespace std;
const int mod = 3210121;
string a , b;
int bkt(int sa , int fa , int sb , int fb)
{
int add = 0;
int t = 0;
if (sa <= fa)
{
t = 1;
char t = a[sa];
bool r = 0;
sa++;
if (sa <= fa)
{
r = 1;
if (a[fa] == t)
{
fa--;
add += bkt(sa , fa , sb , fb);
if (add >= mod) add -= mod;
fa++;
}
}
if (sb <= fb)
{
r = 1;
if (b[fb] == t)
{
fb--;
add += bkt(sa , fa , sb , fb);
if (add >= mod) add -= mod;
fb++;
}
}
if (r == 0) add += 1;
if (add >= mod) add -= mod;
sa--;
}
if (sb <= fb)
{
t = 1;
char t = b[sb];
int r = 0;
sb++;
if (sa <= fa)
{
r = 1;
if (a[fa] == t)
{
fa--;
add += bkt(sa , fa , sb , fb);
if (add >= mod) add -= mod;
fa++;
}
}
if (sb <= fb)
{
r = 1;
if (b[fb] == t)
{
fb--;
add += bkt(sa , fa , sb , fb);
if (add >= mod) add -= mod;
fb++;
}
}
if (r == 0) add += 1;
if (add >= mod) add -= mod;
sb--;
}
if (t == 0) add += 1;
if (add >= mod) add -= mod;
return add;
}
int main()
{
cin >> a;
cin >> b;
cout << bkt(0 , a.size() - 1 , 0 , b.size() - 1) << '\n';
return 0;
}