Cod sursa(job #2485266)

Utilizator BogauuuBogdan Ivancu Bogauuu Data 1 noiembrie 2019 11:19:23
Problema Iv Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#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;
}