Pagini recente » Cod sursa (job #1852319) | Cod sursa (job #3186690) | Cod sursa (job #1782299) | Cod sursa (job #2326240) | Cod sursa (job #60818)
Cod sursa(job #60818)
//Infoarena
#include<stdio.h>
#include<string.h>
int a[501][501];
long n,m;
FILE*g=fopen("subsir.out","w");
FILE*f=fopen("subsir.in","r");
/*void afisare()
{
int i,j;
for(i=0;i<=n;++i)
{for(j=0;j<=m;++j)
fprintf(g,"%d ",a[i][j]);
fprintf(g,"\n");
}
}
*/
int main()
{
long p,i,j,sol=0,k;
char x[501],y[501];
fscanf(f,"%s",x);
fscanf(f,"%s",y);
n=strlen(x);
for(i=n;i>=1;i--) x[i]=x[i-1];
m=strlen(y);
for(i=m;i>=1;i--) y[i]=y[i-1];
for(i=1;i<=n;++i)
for(j=1;j<=m;++j)
{
if(x[i]==y[j])
{
a[i][j]=a[i-1][j-1]+1;
}
else
if(a[i-1][j]>a[i][j-1])
a[i][j]=a[i-1][j];
else a[i][j]=a[i][j-1];
}
if(a[n][m]==0){ fprintf(g,"0"); return 0;}
for(i=1;i<=m;++i) if (a[n][i]==a[n][m]) sol++;
if(sol>2) sol/=2;
fprintf(g,"%ld\n",sol);
//afisare();
return 0;}