Pagini recente » Cod sursa (job #314583) | Cod sursa (job #3184371) | Cod sursa (job #2527143) | Cod sursa (job #2558781) | Cod sursa (job #2461971)
#include <iostream>
#include <fstream>
#include <stack>
#include <cstring>
using namespace std;
ifstream fin("subsir.in");
ofstream fout("subsir.out");
const int amic = 666013;
int n, m;
char ny[1041], my[1041];
int big_brain[1041][1041], emag[1041][1041];
int main()
{
fin >> ny >> my;
n = strlen(ny), m = strlen(my);
for(int x = 1; x <= n; x++){
for(int y = 1; y <= m; y++){
int d;
if(ny[x] == my[y]){
d = big_brain[x-1][y-1]+1;
}else{
d = max(big_brain[x-1][y], big_brain[x][y-1]);
}
big_brain[x][y] = d;
int z = +(big_brain[x-1][y]==big_brain[x][y])*emag[x-1][y]
+(big_brain[x][y-1]==big_brain[x][y])*emag[x][y-1]
-(big_brain[x-1][y-1]==big_brain[x][y])*emag[x-1][y-1];
if(ny[x] == my[y]){
z++;
}
emag[x][y] = z;
emag[x][y] %= amic;
}
}
fout << emag[n][m];
return 0;
}