Pagini recente » Cod sursa (job #2817422) | Rezultatele filtrării | Borderou de evaluare (job #1747743) | teams2 | Cod sursa (job #113754)
Cod sursa(job #113754)
#include <stdio.h>
#include <string.h>
char a[501], b[501], sol[501], nr;
int c[501][501], n, m;
void citire()
{
freopen("subsir.in","r",stdin);
freopen("subsir.out","w",stdout);
scanf("%s",&a);
n = strlen (a);
scanf("%s",&b);
m = strlen (b);
}
void calcul()
{
int i, j, max = 0, ok;
for (i = 1; i <= n; i++)
for (j = 1; j <= m; j++)
{
if (a[i - 1] == b[j - 1])
c[i][j] = c[i - 1][j - 1] + 1;
else if (c[i - 1][j] > c[i][j - 1]) c[i][j] = c[i - 1][j];
else c[i][j] = c[i][j-1];
}
max = c[n][m];
for (i = 1; i <= n; i++)
for (j = 1; j <= m; j++)
if (c[i][j] == max) nr++, m = j - 1;
printf ("%d\n",nr);
}
int main()
{
citire();
calcul();
return 0;
}