Pagini recente » hoata2 | Cod sursa (job #2074066) | Cod sursa (job #369533) | Cod sursa (job #2912708) | Cod sursa (job #3284448)
#include <fstream>
using namespace std;
ifstream cin("subsir.in");
ofstream cout("subsir.out");
int v1[501];
int v2[501];
int d[501][501][2];
int main()
{
char ch='a';
int ok=0,n=0,m=0,i,j;
while(cin.get(ch))
{
if(ch=='\n')
ok++;
else
{
if(ok==0)
{
n++;
v1[n]=ch-'a'+1;
}
else
{
m++;
v2[m]=ch-'a'+1;
}
}
}
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
ok=0;
if(v1[i]==v2[j])
ok++;
d[i][j][0]=max(d[i-1][j][0],max(d[i][j-1][0],d[i-1][j-1][0]+ok));
if(d[i-1][j][0]==d[i][j][0])
d[i][j][1]+=d[i-1][j][1];
if(d[i][j-1][0]==d[i][j][0])
d[i][j][1]+=d[i][j-1][1];
if(d[i-1][j-1][0]+ok==d[i][j][0])
d[i][j][1]+=d[i-1][j-1][1];
if(d[i][j][1]==0 and d[i][j][0]!=0)
d[i][j][1]=1;
}
cout<<d[n][m][1];
return 0;
}