Pagini recente » Cod sursa (job #3140252) | Cod sursa (job #816066) | Cod sursa (job #166367) | Cod sursa (job #2517752) | Cod sursa (job #825042)
Cod sursa(job #825042)
# include<fstream>
# include<cstring>
# include<algorithm>
# define mod 666013
using namespace std;
ifstream f("subsir.in");
ofstream g("subsir.out");
int c[205][205],s[205][205];
char a[205],b[205];
int lga,lgb;
void citire()
{
f.getline(a,205);
f.getline(b,205);
lga=strlen(a);
lgb=strlen(b);
}
void rezolva()
{
int i,j,lg;
lg=max(lga,lgb);
for(i=0;i<=lg;++i)
s[i][0]=s[0][i]=1;
for(i=0;i<lga;++i)
for(j=0;j<lgb;++j)
if(a[i]==b[j])
{
c[i+1][j+1]=c[i][j]+1;
s[i+1][j+1]=s[i][j];
}
else
if (c[i+1][j]==c[i][j+1])
{
s[i+1][j+1]=s[i+1][j]+s[i][j+1];
c[i+1][j+1]=c[i][j+1];
if (c[i][j+1]==c[i][j])
s[i+1][j+1]=s[i+1][j+1]+-s[i][j];
}
else
if (c[i+1][j]<c[i][j+1])
{
c[i+1][j+1]=c[i][j+1];
s[i+1][j+1]=s[i][j+1];
}
else
{
c[i+1][j+1]=c[i+1][j];
s[i+1][j+1]=s[i+1][j];
}
g<<s[lga][lgb];
}
int main()
{
citire();
rezolva();
return 0;
}