#include #include #include #include #include #include void check_heap(int size, long int* array){ int i; for(i = 0; i < size; i++){ int c = (2 * i) + 1; if(c >= size) break; if(!(array[c] >= array[i])){ printf("Nie je kopa.\n"); exit(0); } c = (2 * i) + 2; if(c >= size) break; if(!(array[c] >= array[i])){ printf("Nie je kopa.\n"); exit(0); } } printf("Je to taka kopa:\n"); } void space(int l){ int i = 0; for(i = 0; i < l; i++){ printf(" "); } } void print(long int *arr, int i, int size, int c, int level){ if(i >= size){ return; } space(level); printf("%ld\n", arr[i]); print(arr,i*2+1, size, c, level+1); print(arr, i*2+2, size, c, level+1); } int main() { char cisla[100]; char *r = fgets(cisla, 100, stdin); if(r == NULL){ return 0; } cisla[strlen(cisla)-1] = '\0'; int size = strlen(cisla); long int num[size]; char *end; int i = 0; while(i != size){ if(i == 0){ long int c = strtol(cisla, &end, 10); num[i] = c; } else{ long int next = strtol(end, &end, 10); num[i] = next; } i++; } i = 0; int count = 0; while(num[i] != '\0'){ count++; i++; } i = 0; int index = 0; int l = 0; check_heap(count, num); int j = 0; print(num, index, count,num[0],l); return 0; }