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
#include <stdio.h>
#include <math.h>

unsigned int t[50];

int main(void)
{
    unsigned int n, k, i;
    scanf( "%u", &n );
    scanf( "%u", &k);
    if( k % 2 == 0 )
    {
        unsigned int a;
        for( i = 0; i < 1 << n; ++i )
        {
            scanf( "%u", &a );
            printf( "%u ", a );
        }
    }
    else
    {
        unsigned int p = 1 << n;

        for( i = 0; i < p; ++i )
        {
            scanf( "%u", t + i );
        }
        for( i = p - 1; i > 0; --i )
        {
            printf( "%u ", t[i] );
        }
        printf( "%u ", *t );
    }

    return 0;
}