Cod sursa(job #1405119)

Utilizator bt.panteaPantea Beniamin bt.pantea Data 28 martie 2015 21:11:20
Problema Subsir Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <iostream>
#include <cstring>
#include <fstream>
using namespace std;
ifstream f ("subsir.in");
ofstream g ("subsir.out");

char s[2][505];
unsigned bst[600];
int Max (unsigned x)
{
    unsigned i,Max1=0;
    for (i=0;i<x;i++)
        if (bst[i]>Max1) Max1=bst[i];
    return Max1;
}
int muz(int x, int y)
{
    int i,j,Max1=0,cont=0;;
    for (i=0;i<=505;i++)
        bst[i]=0;
    for (i=0;i<strlen(s[x]);i++)
    {
        j=strlen(s[y])-1;
        while (j>=0)
        {
            while (j>0&&s[y][j]!=s[x][i]) j--;
            if (s[y][j]==s[x][i])
            {
                bst[j]=Max(j)+1;
                if (bst[j]>Max1)
                    Max1=bst[j];
            }
            j--;
        }
    }
    for (i=0;i<strlen(s[y]);i++)
    {
        if (bst[i]==Max1) cont++;
    }
    return cont;
}
int main()
{
    f>>s[0]>>s[1];
    g<<muz(0,1);
    return 0;
}