/* 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
{
private static final char [ ] DIGITS = ( "0123456789"
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ "abcdefghijklmnopqrstuvwxyz" ) .toCharArray ( ) ;
private static final int BASE = DIGITS.length ;
private static final int MAX_NUMBER = BASE * BASE * BASE;
public static String generateCode
( int num
) { if ( num < 1 || num > MAX_NUMBER) {
}
int value = num - 1 ;
char ac = DIGITS[ ( ( value / BASE) / BASE) % BASE] ;
char bc = DIGITS[ ( value / BASE) % BASE] ;
char cc = DIGITS[ value % BASE] ;
return new String ( new char [ ] { ac, bc, cc
} ) ; }
public static void testIt( int value) {
try {
System .
out .
println ( "Value " + value
+ ": " + generateCode
( value
) ) ; System .
out .
println ( "Value " + value
+ " Error " + e.
getMessage ( ) ) ; }
}
{
testIt( 0 ) ;
testIt( 1 ) ;
testIt( 2 ) ;
testIt( 62 ) ;
testIt( 63 ) ;
testIt( 1000 ) ;
testIt( MAX_NUMBER) ;
testIt( MAX_NUMBER + 1 ) ;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXJbXSBESUdJVFMgPSAoIjAxMjM0NTY3ODkiCiAgICAgICAgICAgKyAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiCiAgICAgICAgICAgKyAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKS50b0NoYXJBcnJheSgpOwogICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEJBU0UgPSBESUdJVFMubGVuZ3RoOwogICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9OVU1CRVIgPSBCQVNFICogQkFTRSAqIEJBU0U7CgogICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2VuZXJhdGVDb2RlKGludCBudW0pIHsKICAgICAgICBpZiAobnVtIDwgMSB8fCBudW0gPiBNQVhfTlVNQkVSKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgaW5wdXQgdmFsdWU6ICIgKyBudW0pOwogICAgICAgIH0KCiAgICAgICAgaW50IHZhbHVlID0gbnVtIC0gMTsKCiAgICAgICAgY2hhciBhYyA9IERJR0lUU1soKHZhbHVlIC8gQkFTRSkgLyBCQVNFKSAlIEJBU0VdOwogICAgICAgIGNoYXIgYmMgPSBESUdJVFNbKHZhbHVlIC8gQkFTRSkgJSBCQVNFXTsKICAgICAgICBjaGFyIGNjID0gRElHSVRTW3ZhbHVlICUgQkFTRV07CiAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcobmV3IGNoYXJbXXthYywgYmMsIGNjfSk7CiAgICB9CiAgICAKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCB0ZXN0SXQoaW50IHZhbHVlKSB7CiAgICAJdHJ5IHsKICAgIAkJU3lzdGVtLm91dC5wcmludGxuKCJWYWx1ZSAiICsgdmFsdWUgKyAiOiAiICsgZ2VuZXJhdGVDb2RlKHZhbHVlKSk7CiAgICAJfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKICAgIAkJU3lzdGVtLm91dC5wcmludGxuKCJWYWx1ZSAiICsgdmFsdWUgKyAiIEVycm9yICIgKyBlLmdldE1lc3NhZ2UoKSk7CiAgICAJfQogICAgfQoKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCXRlc3RJdCgwKTsKCQl0ZXN0SXQoMSk7CgkJdGVzdEl0KDIpOwoJCXRlc3RJdCg2Mik7CgkJdGVzdEl0KDYzKTsKCQl0ZXN0SXQoMTAwMCk7CgkJdGVzdEl0KE1BWF9OVU1CRVIpOwoJCXRlc3RJdChNQVhfTlVNQkVSICsgMSk7Cgl9Cn0=