/* 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 Ideone
{
{
System.
out.
println(shortenText
("The automatic gain control control")); }
static Map
<String, String
> ABBREVIATION_MAP
= new TreeMap
<>(new Comparator
<String
>() { // Sort keys descending by length
return b.length() - a.length();
}
});
static {
ABBREVIATION_MAP.put("CONTROL", "CNTRL");
ABBREVIATION_MAP.put("AUTOMATIC GAIN CONTROL", "AGC");
ABBREVIATION_MAP.put("THE", "");
}
StringBuilder result = new StringBuilder(input).insert(0, " ").append(" ");
for (Map.
Entry<String, String
> entry
: ABBREVIATION_MAP.
entrySet()) { String phrase
= " " + entry.
getKey() + " "; String replacement
= " " + entry.
getValue() + " ";
int i;
do {
i = result.toString().toUpperCase().indexOf(phrase);
if (i > -1) {
result.replace(i, i + phrase.length(), replacement);
}
} while (i > -1);
}
return result.toString().trim();
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCVN5c3RlbS5vdXQucHJpbnRsbihzaG9ydGVuVGV4dCgiVGhlIGF1dG9tYXRpYyBnYWluIGNvbnRyb2wgY29udHJvbCIpKTsKCX0KCQoJc3RhdGljIE1hcDxTdHJpbmcsIFN0cmluZz4gQUJCUkVWSUFUSU9OX01BUCA9IG5ldyBUcmVlTWFwPD4obmV3IENvbXBhcmF0b3I8U3RyaW5nPigpIHsKICAgICAgLy8gU29ydCBrZXlzIGRlc2NlbmRpbmcgYnkgbGVuZ3RoCgkgIHB1YmxpYyBpbnQgY29tcGFyZShTdHJpbmcgYSwgU3RyaW5nIGIpIHsKCSAgCXJldHVybiBiLmxlbmd0aCgpIC0gYS5sZW5ndGgoKTsKCSAgfQoJfSk7CgkKCXN0YXRpYyB7CgkJQUJCUkVWSUFUSU9OX01BUC5wdXQoIkNPTlRST0wiLCAiQ05UUkwiKTsKCQlBQkJSRVZJQVRJT05fTUFQLnB1dCgiQVVUT01BVElDIEdBSU4gQ09OVFJPTCIsICJBR0MiKTsKCQlBQkJSRVZJQVRJT05fTUFQLnB1dCgiVEhFIiwgIiIpOwoJfQoJCglzdGF0aWMgcHVibGljIFN0cmluZyBzaG9ydGVuVGV4dChTdHJpbmcgaW5wdXQpIHsKCQlTdHJpbmdCdWlsZGVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWlsZGVyKGlucHV0KS5pbnNlcnQoMCwgIiAiKS5hcHBlbmQoIiAiKTsKCQkKCQlmb3IgKE1hcC5FbnRyeTxTdHJpbmcsIFN0cmluZz4gZW50cnkgOiBBQkJSRVZJQVRJT05fTUFQLmVudHJ5U2V0KCkpIHsKCQkJU3RyaW5nIHBocmFzZSA9ICIgIiArIGVudHJ5LmdldEtleSgpICsgIiAiOwoJCQlTdHJpbmcgcmVwbGFjZW1lbnQgPSAiICIgKyBlbnRyeS5nZXRWYWx1ZSgpICsgIiAiOwoJCQkKCQkJaW50IGk7CgkJCWRvIHsKCQkJCWkgPSByZXN1bHQudG9TdHJpbmcoKS50b1VwcGVyQ2FzZSgpLmluZGV4T2YocGhyYXNlKTsKCQkJCWlmIChpID4gLTEpIHsKCQkJCSAgcmVzdWx0LnJlcGxhY2UoaSwgaSArIHBocmFzZS5sZW5ndGgoKSwgcmVwbGFjZW1lbnQpOwoJCQkJfQoJCQl9IHdoaWxlIChpID4gLTEpOwoJCX0KCQkKCQlyZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCkudHJpbSgpOwoJfQp9