//package net.toomyem;
import java.math.BigInteger;
import java.util.Scanner;
public class slo {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int n = s.nextInt();
int k = s.nextInt();
String result = slo(n, k - 1);
System.out.println(result);
}
public static String slo(int n, int k) {
String result = "";
char lastV = ' ';
char v = ' ';
char[] t1 = {'a', 'b', 'c'};
char[] t2 = {'b', 'c'};
char[] t3 = {'a', 'c'};
char[] t4 = {'a', 'b'};
while (true) {
BigInteger m = BigInteger.valueOf(2).pow(n).subtract(BigInteger.ONE);
BigInteger p = BigInteger.valueOf(k).divide(m);
BigInteger q = BigInteger.valueOf(k).mod(m);
int pi = p.intValue();
if (pi >= 3) {
result = "NIE";
break;
}
if (lastV == ' ') {
v = t1[pi];
} else if(lastV == 'a') {
v = t2[pi];
} else if(lastV == 'b') {
v = t3[pi];
} else if(lastV == 'c') {
v = t4[pi];
}
result += v;
if (q.intValue() == 0) break;
k = q.intValue() - 1;
n -= 1;
lastV = v;
}
return result;
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | //package net.toomyem; import java.math.BigInteger; import java.util.Scanner; public class slo { public static void main(String[] args) { Scanner s = new Scanner(System.in); int n = s.nextInt(); int k = s.nextInt(); String result = slo(n, k - 1); System.out.println(result); } public static String slo(int n, int k) { String result = ""; char lastV = ' '; char v = ' '; char[] t1 = {'a', 'b', 'c'}; char[] t2 = {'b', 'c'}; char[] t3 = {'a', 'c'}; char[] t4 = {'a', 'b'}; while (true) { BigInteger m = BigInteger.valueOf(2).pow(n).subtract(BigInteger.ONE); BigInteger p = BigInteger.valueOf(k).divide(m); BigInteger q = BigInteger.valueOf(k).mod(m); int pi = p.intValue(); if (pi >= 3) { result = "NIE"; break; } if (lastV == ' ') { v = t1[pi]; } else if(lastV == 'a') { v = t2[pi]; } else if(lastV == 'b') { v = t3[pi]; } else if(lastV == 'c') { v = t4[pi]; } result += v; if (q.intValue() == 0) break; k = q.intValue() - 1; n -= 1; lastV = v; } return result; } } |
English