/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class StringManupulation {
{
System.
out.
println("Prefix:"); String prefix
= br.
readLine(); System.
out.
println("Suffix:"); String suffix
= br.
readLine();
System.
out.
println("output:"+calculateScore
(text, prefix, suffix
));
}
int n = text.length();
int sl = suffix.length();
int pl = prefix.length();
Map
<String, Integer
> map
= new HashMap
<>();
for(int i =0; i<n; i++) {
for(int j = i+1; j<=n; j++) {
String sub
= text.
substring(i,j
);
int ps = 0, ss = 0, subL = sub.length();
for(int k =0; k < subL; k++) {
if(subL - k <= sl) {
if(sub.substring(k).equals(suffix.substring(0,subL-k))) {
ps
= Math.
max(subL
-k, ps
); }
}
}
for(int k =0; k < subL; k++) {
if(k < pl) {
if(sub.substring(0,k+1).equals(prefix.substring(pl-k-1, pl))) {
}
}
}
if(map.get(sub)==null) {
map.put(sub, ps+ss);
} else {
map.
put(sub,
Math.
max(map.
get(sub
), ps
+ss
)); }
}
}
int m = -1;
Set<String> keys = map.keySet();
for(int i = 0; i<arr.length; i++) {
if(m < map.get(arr[i])) {
ans = arr[i];
m = map.get(arr[i]);
}
}
return ans;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KIGNsYXNzIFN0cmluZ01hbnVwdWxhdGlvbiB7CgoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIFtdYXJncykgdGhyb3dzIElPRXhjZXB0aW9uCgl7CgkJQnVmZmVyZWRSZWFkZXIgYnIgID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBJbnB1dFN0cmVhbVJlYWRlcihTeXN0ZW0uaW4pKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4oIlRleHQ6Iik7CgkJU3RyaW5nIHRleHQgPSBici5yZWFkTGluZSgpOwoJCQoJCVN5c3RlbS5vdXQucHJpbnRsbigiUHJlZml4OiIpOwoJCVN0cmluZyBwcmVmaXggPSBici5yZWFkTGluZSgpOwoJCVN5c3RlbS5vdXQucHJpbnRsbigiU3VmZml4OiIpOwoJCVN0cmluZyBzdWZmaXggPSBici5yZWFkTGluZSgpOwoJCQoJCVN5c3RlbS5vdXQucHJpbnRsbigib3V0cHV0OiIrY2FsY3VsYXRlU2NvcmUodGV4dCwgcHJlZml4LCBzdWZmaXgpKTsKCQoJfQoJCglzdGF0aWMgU3RyaW5nIGNhbGN1bGF0ZVNjb3JlKFN0cmluZyB0ZXh0LCBTdHJpbmcgcHJlZml4LCBTdHJpbmcgc3VmZml4KSB7CgogICAgICAgIGludCBuID0gdGV4dC5sZW5ndGgoKTsKICAgICAgICBpbnQgc2wgPSBzdWZmaXgubGVuZ3RoKCk7CiAgICAgICAgaW50IHBsID0gcHJlZml4Lmxlbmd0aCgpOwoKCiAgICAgICAgTWFwPFN0cmluZywgSW50ZWdlcj4gbWFwID0gbmV3IEhhc2hNYXA8PigpOwoKICAgICAgICBmb3IoaW50IGkgPTA7IGk8bjsgaSsrKSB7CiAgICAgICAgICAgIGZvcihpbnQgaiA9IGkrMTsgajw9bjsgaisrKSB7CgogICAgICAgICAgICAgICAgU3RyaW5nIHN1YiA9IHRleHQuc3Vic3RyaW5nKGksaik7CgogICAgICAgICAgICAgICAgaW50IHBzID0gMCwgc3MgPSAwLCBzdWJMID0gc3ViLmxlbmd0aCgpOwoKICAgICAgICAgICAgICAgIGZvcihpbnQgayA9MDsgayA8IHN1Ykw7IGsrKykgewogICAgICAgICAgICAgICAgICAgIGlmKHN1YkwgLSBrIDw9IHNsKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHN1Yi5zdWJzdHJpbmcoaykuZXF1YWxzKHN1ZmZpeC5zdWJzdHJpbmcoMCxzdWJMLWspKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHMgPSBNYXRoLm1heChzdWJMLWssIHBzKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBmb3IoaW50IGsgPTA7IGsgPCBzdWJMOyBrKyspIHsKICAgICAgICAgICAgICAgICAgICBpZihrIDwgcGwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoc3ViLnN1YnN0cmluZygwLGsrMSkuZXF1YWxzKHByZWZpeC5zdWJzdHJpbmcocGwtay0xLCBwbCkpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcyA9IE1hdGgubWF4KGsrMSxzcyk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYobWFwLmdldChzdWIpPT1udWxsKSB7CiAgICAgICAgICAgICAgICAgICAgbWFwLnB1dChzdWIsIHBzK3NzKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgbWFwLnB1dChzdWIsIE1hdGgubWF4KG1hcC5nZXQoc3ViKSwgcHMrc3MpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpbnQgbSA9IC0xOwogICAgICAgIFNldDxTdHJpbmc+IGtleXMgPSBtYXAua2V5U2V0KCk7CgogICAgICAgIFN0cmluZ1tdIGFyciA9IGtleXMudG9BcnJheShuZXcgU3RyaW5nW2tleXMuc2l6ZSgpXSk7CgogICAgICAgIEFycmF5cy5zb3J0KGFycik7CiAgICAgICAgU3RyaW5nIGFucyA9IG51bGw7CiAgICAgICAgZm9yKGludCBpID0gMDsgaTxhcnIubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgaWYobSA8IG1hcC5nZXQoYXJyW2ldKSkgewogICAgICAgICAgICAgICAgYW5zID0gYXJyW2ldOwogICAgICAgICAgICAgICAgbSA9IG1hcC5nZXQoYXJyW2ldKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGFuczsKICAgIH0KfQ==