Pagini recente » Cod sursa (job #3176071) | Cod sursa (job #2397018) | Cod sursa (job #2918203) | Cod sursa (job #470016) | Cod sursa (job #3284527)
#include <fstream>
#define mod 666013
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;
d[i][j][0]=d[i][j][0]%mod;
}
cout<<d[n][m][0];
return 0;
}