//
// main.cpp
// TAS
//
// Created by Andrzej Michnia on 22.11.2016.
// Copyright © 2016 intive. All rights reserved.
//
#include <stdio.h>
void tas(unsigned long int left, bool reversed);
unsigned long int pow(unsigned long int base, int pow);
int main(int argc, const char * argv[]) {
// Declarations
int n = 20;
unsigned long int t = 0;
unsigned long int left = 0;
// Input - length of deck as 2^n, numer of tas as t
scanf("%d%ld",&n,&t);
// Compute deck length
left = pow(2,n);
// Do it
tas(left, (t % 2 == 1));
printf("\n");
return 0;
}
unsigned long int pow(unsigned long int base, int power) {
if (power == 0) {
return 1;
}
return base * pow(base, power - 1);
}
void tas(unsigned long int left, bool reversed) {
if (left <= 0) {
return;
}
unsigned long int current = 0;
scanf("%ld",¤t);
if (reversed) {
tas(left - 1, reversed);
printf("%ld ", current);
}
else {
printf("%ld ", current);
tas(left - 1, reversed);
}
}
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 53 54 55 56 57 58 59 60 | // // main.cpp // TAS // // Created by Andrzej Michnia on 22.11.2016. // Copyright © 2016 intive. All rights reserved. // #include <stdio.h> void tas(unsigned long int left, bool reversed); unsigned long int pow(unsigned long int base, int pow); int main(int argc, const char * argv[]) { // Declarations int n = 20; unsigned long int t = 0; unsigned long int left = 0; // Input - length of deck as 2^n, numer of tas as t scanf("%d%ld",&n,&t); // Compute deck length left = pow(2,n); // Do it tas(left, (t % 2 == 1)); printf("\n"); return 0; } unsigned long int pow(unsigned long int base, int power) { if (power == 0) { return 1; } return base * pow(base, power - 1); } void tas(unsigned long int left, bool reversed) { if (left <= 0) { return; } unsigned long int current = 0; scanf("%ld",¤t); if (reversed) { tas(left - 1, reversed); printf("%ld ", current); } else { printf("%ld ", current); tas(left - 1, reversed); } } |
English