Cod sursa(job #2029848)

Utilizator RaduMirceaAndreiRadu Mircea Andrei RaduMirceaAndrei Data 30 septembrie 2017 15:46:01
Problema Subsir Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
# include <fstream>
# include <cstring>
using namespace std;
ifstream fin("subsir.in");
ofstream fout("subsir.out");
char a[505],b[505];
int d[505][505],v[505][505],n,m,i,j;
int main () {
    fin>>a+1>>b+1;
    n=strlen(a+1);
    m=strlen(b+1);
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            if(a[i]==b[j]){
                d[i][j]=d[i-1][j-1];
                if(d[i][j]==0)
                    d[i][j]++;
                v[i][j]=v[i-1][j-1]+1;
            }
            else{
                if(v[i][j-1]==v[i-1][j])
                    d[i][j]=d[i-1][j]+d[i][j-1];
                else{
                    if(v[i][j-1]>v[i-1][j]){
                        v[i][j]=v[i][j-1];
                        d[i][j]=d[i][j-1];
                    }
                    else{
                        v[i][j]=v[i-1][j];
                        d[i][j]=d[i-1][j];
                    }
                }
            }
    fout<<d[n][m]<<"\n";
    return 0;
}