import java.util.Arrays;
import java.util.Scanner;
public class tas {
public static void main(String[] args) {
try (Scanner scanner = new Scanner(System.in)) {
int n = scanner.nextInt();
int t = scanner.nextInt();
int cards[] = new int[(int) Math.pow(2, n)];
for (int i = 0; i < cards.length; i++) {
cards[i] = scanner.nextInt();
}
calculateAndPrintResultUsingSimpleMethod(t, cards);
}
}
private static void calculateAndPrintResultUsingSimpleMethod(int t, int[] cards) {
if (t % 2 == 0) {
printCards(cards);
return;
}
int halfIndex = (cards.length - 1) / 2;
for (int i = 0; i <= halfIndex; i++) {
swap(cards, i, cards.length - i - 1);
}
printCards(cards);
}
private static void swap(int[] cards, int leftIndex, int rightIndex) {
int tmp = cards[rightIndex];
cards[rightIndex] = cards[leftIndex];
cards[leftIndex] = tmp;
}
private static void printCards(int[] cards) {
Arrays.stream(cards).forEach(card -> System.out.print(card + " "));
}
}
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 | import java.util.Arrays; import java.util.Scanner; public class tas { public static void main(String[] args) { try (Scanner scanner = new Scanner(System.in)) { int n = scanner.nextInt(); int t = scanner.nextInt(); int cards[] = new int[(int) Math.pow(2, n)]; for (int i = 0; i < cards.length; i++) { cards[i] = scanner.nextInt(); } calculateAndPrintResultUsingSimpleMethod(t, cards); } } private static void calculateAndPrintResultUsingSimpleMethod(int t, int[] cards) { if (t % 2 == 0) { printCards(cards); return; } int halfIndex = (cards.length - 1) / 2; for (int i = 0; i <= halfIndex; i++) { swap(cards, i, cards.length - i - 1); } printCards(cards); } private static void swap(int[] cards, int leftIndex, int rightIndex) { int tmp = cards[rightIndex]; cards[rightIndex] = cards[leftIndex]; cards[leftIndex] = tmp; } private static void printCards(int[] cards) { Arrays.stream(cards).forEach(card -> System.out.print(card + " ")); } } |
English