Pagini recente » Cod sursa (job #2033619) | Cod sursa (job #1421046) | Cod sursa (job #3244025) | Cod sursa (job #1285356) | Cod sursa (job #2279274)
#include <fstream>
#include <string.h>
#define LMAX 500
#define MOD 3210121
using namespace std;
ifstream fi("iv.in");
ofstream fo("iv.out");
char C1[LMAX+5], C2[LMAX+5];
int n, m;
long long solve(int le, int ri, int le1, int ri1, int le2, int ri2)
{
int rez=0;
if(le>ri)
return 1;
if(C1[le1]==C1[ri1])
{
if(le1<ri1 || le2>ri2)
rez=(rez+solve(le+1, ri-1, le1+1, ri1-1, le2, ri2))%MOD;
}
if(le1<=ri1 && le2<=ri2)
{
if(C1[le1]==C2[ri2])
rez=(rez+solve(le+1, ri-1, le1+1, ri1, le2, ri2-1))%MOD;
if(C2[le2]==C1[ri1])
rez=(rez+solve(le+1, ri-1, le1, ri1-1, le2+1, ri2))%MOD;
}
if(C2[le2]==C2[ri2])
{
if(le2<ri2 || le1>ri1)
rez=(rez+solve(le+1, ri-1, le1, ri1, le2+1, ri2-1))%MOD;
}
return rez;
}
int main()
{
fi>>C1+1>>C2+1;
n=strlen(C1+1);
m=strlen(C2+1);
fo<<solve(1, n+m, 1, n, 1, m);
fi.close();
fo.close();
return 0;
}