Pagini recente » Cod sursa (job #2567753) | Cod sursa (job #2603835) | Cod sursa (job #2260711) | Cod sursa (job #719238) | Cod sursa (job #2485266)
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("iv.in");
ofstream fout("iv.out");
char x[505],y[505];
int main()
{
fin >> x;
fin >> y;
n=strlen(x);
m=strlen(y);
if (a[1]==a[n]) d[1][1][1]=1;
if (a[1]==b[m]) d[1][1][0]=1;
if (b[1]==b[m]) d[1][0][1]=1;
if (b[1]==a[n]) d[1][0][0]=1;
t=0;
for (k=2;k<=(n+m)/2;k++)
{
for (i=0;i<=n && i<=k;i++)
{
for (j=0;j+i<=n && j<=k;j++)
{
if (a[i]==a[n-j+1] && i>0 && n-j+1<=n) d[t][i][j]+=d[1-t][i-1][j-1];
if (a[i]==b[m-l+j+1] && i>0 && m-l+j+1<=m) d[t][i][j]+=d[1-t][i-1][j];
if (b[l-i]==a[n-j+1] && l-i>0 && n-j+1<=n) d[t][i][j]+=d[1-t][i][j-1];
if (b[l-i]==b[m-l+j+1] && l-i>0 && m-l+j+1<=m) d[t][i][j]+=d[1-t][i][j];
d[t][i][j]%=mod;
}
}
if (t==0) t=1;
else t=0;
}
return 0;
}