Cod sursa(job #458181)

Utilizator aladinaladin aladinn aladin Data 23 mai 2010 16:56:18
Problema Subsir Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <cstdio>
#include <cstring>
char a[505],b[505];
int max,nr,i,j,n,m,mx[505],nm[505],q,p;

int main()
{
	freopen("subsir.in","r",stdin);
	freopen("subsir.out","w",stdout);
	scanf("%s\n%s",a,b);
	n=strlen(a)-1;
	m=strlen(b)-1;
	for (i=0;i<=n;++i)
		{
			int max=0,nr=1;
			for (j=0;j<=m;++j)
			{
				q=mx[j];p=nm[j];
				if (a[i]==b[j])
					mx[j]=max+1;nm[j]=nr;
				if ((q==max) && (q!=0)) nr+=p; else
					if (q>max)
						max=q,nr=p;
			}
	     }
	max=0,nr=0;
	for (j=0;j<=m;++j)
		if ((mx[j]==max) && (mx[j]!=0)) nr+=nm[j]; else
			if (mx[j]>max)
				max=mx[j],nr=nm[j];
			
	
				
					
		
	printf("%d",nr);	
	return 0;}