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
#include <iostream>

int main()
{
    unsigned int n, t;
    std::cin >> n >> t;
    n = 1 << n;

    if (t % 2 == 1) {
        //Odwróci się
        int *buf = new int [n];
        for (unsigned int i = 0; i < n; ++i)
            std::cin >> buf[i];
        for (unsigned int i = 0; i < n; ++i)
            std::cout << buf[n - i - 1] << " ";
        std::cout << std::endl;
        delete [] buf;
    } else {
        //Bez zmian
        for (unsigned int i = 0; i < n; ++i) {
            int card;
            std::cin >> card;
            std::cout << card << " ";
        }
        std::cout << std::endl;
    }

    return 0;
}