#include #include #include #include #include #include #define SIZE 100 bool jeKopa(int i, int inputNum[SIZE]); void vypisovac(int vypis[SIZE], int input[SIZE], int size); int ownPow(int base, int power); int input(char string[100], int numbers[100]); int main(){ char stringNum[100]; int inputNum[100] = {0}, i = 0; fgets(stringNum,SIZE,stdin); i = input(stringNum,inputNum) -1; for (int j = 0; j < SIZE; j++){if(inputNum[j]<0-1){i++;}} int vypis[100]; if(jeKopa(i,inputNum)){ printf("Je to taka kopa:"); int temp = 0, count = 0; vypis[0] = 0; for (int j = 0; j+1 < i; j++) { if (2*j+1 >= i) { break; } vypis[j+1] = 2*j+1; vypis[i-(j)] = 2*j+2; } if (i%2!=0) { vypis[(i/2)+1] = i; } } printf("\n"); vypisovac(vypis,inputNum,i+1); return 0; } bool jeKopa(int i, int inputNum[SIZE]){ for (int j = (i-1)/2; j >= 0; j--) { int l =2*i+1 , r = 2*i+2; if (l>=i) { continue; } if (inputNum[j]>inputNum[l] || inputNum[j]>inputNum[r]) { printf("Nieje kopa"); return 0; } } return 1; } void vypisovac(int vypis[SIZE], int input[SIZE], int size){ int counter = 0, count = ownPow(2,0), space = 0, i = 0; for (i = 0; i < size; i++) { if (counter>=count && i<=(size/2)) { count = ownPow(2,i)/2; if (ownPow(2,i)%2){count++;} counter = 0; space++; } else if (counter>=count && i>(size/2) || vypis[i]input[vypis[i-1]]) { count = ownPow(2,i)/2; counter = 0; } else{ count = ownPow(2,size-i-1)/2; counter = 0; space--; } } counter++; for (int k = 0; k < space; k++) { printf(" "); } printf("%d\n",input[vypis[(int)i]]); } } int ownPow(int base, int power){ int result = 0; if (power>0) { result = 1; } else{ return 1; } for (int i = 0; i