/* 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 ( yoba
( "hui pizda jigurda" ) ) ; }
public static CharSequence yoba( final CharSequence input) {
return new CharSequence( ) {
@Override
public char charAt( int index) {
char c = input.charAt ( index) ;
return index
% 2 == 0 ? Character .
toUpperCase ( c
) : c
; }
@Override
public int length( ) {
return input.length ( ) ;
}
@Override
public CharSequence subSequence( int start, int end) {
return input.subSequence ( start, end) ;
}
@Override
throw new RuntimeException ( "Ну тут уж либо делаем по-старому, либо кэшируем, например." ) ; }
} ;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCVN5c3RlbS5vdXQucHJpbnRsbih5b2JhKCJodWkgcGl6ZGEgamlndXJkYSIpKTsKCX0KCQoJcHVibGljIHN0YXRpYyBDaGFyU2VxdWVuY2UgeW9iYShmaW5hbCBDaGFyU2VxdWVuY2UgaW5wdXQpIHsKCQlyZXR1cm4gbmV3IENoYXJTZXF1ZW5jZSgpIHsKCQkJQE92ZXJyaWRlCgkJCXB1YmxpYyBjaGFyIGNoYXJBdChpbnQgaW5kZXgpIHsKCQkJCWNoYXIgYyA9IGlucHV0LmNoYXJBdChpbmRleCk7CgkJCQlyZXR1cm4gaW5kZXggJSAyID09IDAgPyBDaGFyYWN0ZXIudG9VcHBlckNhc2UoYykgOiBjOwoJCQl9CgkJCQoJCQlAT3ZlcnJpZGUKCQkJcHVibGljIGludCBsZW5ndGgoKSB7CgkJCQlyZXR1cm4gaW5wdXQubGVuZ3RoKCk7CgkJCX0KCQkJCgkJCUBPdmVycmlkZQoJCQlwdWJsaWMgQ2hhclNlcXVlbmNlIHN1YlNlcXVlbmNlKGludCBzdGFydCwgaW50IGVuZCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGlucHV0LnN1YlNlcXVlbmNlKHN0YXJ0LCBlbmQpOyAgICAgICAJCiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIEBPdmVycmlkZQogICAgICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgewogICAgICAgICAgICAJdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oItCd0YMg0YLRg9GCINGD0LYg0LvQuNCx0L4g0LTQtdC70LDQtdC8INC/0L4t0YHRgtCw0YDQvtC80YMsINC70LjQsdC+INC60Y3RiNC40YDRg9C10LwsINC90LDQv9GA0LjQvNC10YAuIik7CiAgICAgICAgICAgIH0KCQl9OwoJfQp9