class Testy
{
{
int n = A.length();
int m = B.length();
int[][] C = new int[n+1][m+1];
for (int i=0;i<n;i++)
{
for (int j=0;j<m;j++)
{
if (A.charAt(i) == B.charAt(j))
C[i+1][j+1] = C[i][1] + 1;
else
C
[i
+1][j
+1] = Math.
max(C
[i
+1][j
], C
[i
][j
+1]); }
}
for (int i=0;i<n+1;i++)
{
for (int j=0;j<m+1;j++)
System.
out.
print(C
[i
][j
]+" "); }
}
}
Y2xhc3MgVGVzdHkgCnsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIAoJewoJCVN0cmluZyBBID0gImJhYmFiIjsKCQlTdHJpbmcgQiA9ICJhYmFhYmJhYWEiOwoJCQoJCWludCBuID0gQS5sZW5ndGgoKTsKCQlpbnQgbSA9IEIubGVuZ3RoKCk7CgkJCgkJaW50W11bXSBDID0gbmV3IGludFtuKzFdW20rMV07CgkJCgkJZm9yIChpbnQgaT0wO2k8bjtpKyspCgkJewoJCQlmb3IgKGludCBqPTA7ajxtO2orKykKCQkJewoJCQkJaWYgKEEuY2hhckF0KGkpID09IEIuY2hhckF0KGopKQoJCQkJCUNbaSsxXVtqKzFdID0gQ1tpXVsxXSArIDE7CgkJCQllbHNlCgkJCQkJQ1tpKzFdW2orMV0gPSBNYXRoLm1heChDW2krMV1bal0sIENbaV1baisxXSk7CgkJCX0KCQl9CgoJCWZvciAoaW50IGk9MDtpPG4rMTtpKyspCgkJewoJCQlmb3IgKGludCBqPTA7ajxtKzE7aisrKQoJCQkJCVN5c3RlbS5vdXQucHJpbnQoQ1tpXVtqXSsiICIpOwoJCQlTeXN0ZW0ub3V0LnByaW50bG4oKTsKCQl9Cgl9Cn0=