Pagini recente » Cod sursa (job #2091329) | Cod sursa (job #1564033) | Cod sursa (job #1695957) | Cod sursa (job #1115884) | Cod sursa (job #893019)
Cod sursa(job #893019)
#include <cstdio>
#include <cstring>
using namespace std;
int mat[505][505];
char s1[505],s2[505];
int l1,l2,i,j;
int maxv,maxnr;
int maxim(int a,int b,int c) {
if (a>=b && a>=c) return a;
if (b>=a && b>=c) return b;
return c;
}
int main() {
freopen("subsir.in","r",stdin);
freopen("subsir.out","w",stdout);
scanf("%s %s",s1,s2);
l1 = strlen(s1);
l2 = strlen(s2);
for (i=l1;i>=1;i--) s1[i] = s1[i-1];
for (i=l2;i>=1;i--) s2[i] = s2[i-1];
for (i=1;i<=l2;i++) {
for (j=1;j<=l1;j++) {
if (s1[j] == s2[i]) mat[i][j] = mat[i-1][j-1] +1;
//else mat[i][j] = maxim(mat[i-1][j],mat[i-1][j-1],mat[i][j-1]);
if (mat[i][j] == maxv) maxnr++;
else if (mat[i][j] > maxv) {
maxnr = 1;
maxv = mat[i][j];
}
}
}
printf("%d",maxnr);
}