Cod sursa(job #2548910)

Utilizator levladiatorDragutoiu Vlad-Ioan levladiator Data 17 februarie 2020 10:10:07
Problema Subsir Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("subsir.in");
ofstream fout("subsir.out");

int dp[510][510],i,j,n,m,maxim,cnt,ok,k,l;
char v[510],u[510],c;

int main()
{
    fin.getline(v,505);
    n=strlen(v);
    fin.getline(u,505);
    m=strlen(v);
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=m;j++)
        {
            if(v[i-1]==u[j-1])
            {
                dp[i][j]=dp[i-1][j-1]+1;
                if(maxim<dp[i][j])
                {
                    maxim=dp[i][j];
                    cnt=1;
                }
                else if(maxim==dp[i][j])
                {
                    ok=0;
                    for(k=1;k<=maxim;k++)
                    {
                        if(v[i-k]!=u[j-k])
                        {
                            ok=1;
                            break;
                        }
                    }
                    if(ok==1)cnt++;
                }
            }
            else dp[i][j]=0;
        }
    }
    fout<<cnt;
}