Cod sursa(job #113754)

Utilizator gabitzish1Gabriel Bitis gabitzish1 Data 11 decembrie 2007 14:32:51
Problema Subsir Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#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;
}