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
#include <iostream>
using namespace std;
int karty[1048576], po_przetasowaniu[1048576]; 
int main()
{
    int potega, ilosc_kart=1, ilosc_przetasowan;
    cin >> potega >> ilosc_przetasowan;
    for(int i=1; i<=potega;i++)
            ilosc_kart*=2;
    for(int i=0; i<ilosc_kart; i++)
            cin >> karty[i];
    if(ilosc_przetasowan%2==1)
    {
            int a=0;
            for(int j=ilosc_kart/2; j<ilosc_kart; j++) 
            {           
                 po_przetasowaniu[a]=karty[ilosc_kart-1-a];
                 a++;
            }
            a=ilosc_kart/2;
            for(int j=ilosc_kart/2-1; j>=0; j--)
            {
                 po_przetasowaniu[a]=karty[ilosc_kart-1-a];
                 a++;
            }
            for(int j=0; j < ilosc_kart; j++)
                 cout << po_przetasowaniu[j] << " ";
    }
    else
    {
            for(int j=0; j < ilosc_kart; j++)
                 cout << karty[j] << " ";
    }
    return 0;
}