Pagini recente » Cod sursa (job #2311454) | Cod sursa (job #2625422) | Cod sursa (job #2594234) | Cod sursa (job #645553) | Cod sursa (job #266270)
Cod sursa(job #266270)
#include<stdio.h>
#include<string.h>
#define DIM 502
int n,m,v[DIM][DIM],q;
char a[DIM],b[DIM];
void read ()
{
int i;
gets (a);
gets (b);
n=strlen(a);
m=strlen(b);
for(i=n;i>=0;--i)
a[i]=a[i-1];
for(i=m;i>=0;--i)
b[i]=b[i-1];
}
int max (int x,int y)
{
if(x<y)
return y;
return x;
}
void solve ()
{
int i,j;
for(i=1;i<=n;++i)
for(j=1;j<=m;++j)
if(a[i]==b[j])
v[i][j]=v[i-1][j-1]+1;
else
v[i][j]=max ( v[i-1][j], v[i][j-1]);
}
void show ()
{
int i,j,k=1,k2=0;
for(i=n-1;i>0;--i)
{
k2=0;
if(v[n][m]==v[i][m])
{
++k;
for(j=1;j<m;++j)
if(v[i][j]==v[i+1][j])
++k2;
if(k2==m-1)
--k;
}
}
printf("%d",k);
}
int main ()
{
freopen("subsir.in","r",stdin);
freopen("subsir.out","w",stdout);
read ();
solve ();
show ();
return 0;
}