#include int main() { int arr[100]; // Array to store the input numbers int n = 0; // To keep track of how many numbers we have // Input the numbers while (scanf("%d", &arr[n]) == 1) { n++; } // Check if the array is a min-heap int isHeap = 1; // Flag to indicate whether it's a min-heap for (int i = 0; i < n; i++) { int left = 2 * i + 1; int right = 2 * i + 2; // Check if left child exists and if it is smaller than the parent if (left < n && arr[i] > arr[left]) { isHeap = 0; // Not a min-heap break; } // Check if right child exists and if it is smaller than the parent if (right < n && arr[i] > arr[right]) { isHeap = 0; // Not a min-heap break; } } if (isHeap == 0) { printf("Nie je kopa.\n"); // If it's not a min-heap, print this return 0; // End the program } // If it's a min-heap, print the binary tree in preorder printf("Je to taka kopa:\n"); // Function to print tree in preorder void printPreorder(int i, int level) { if (i >= n) { return; // Stop if index is out of bounds } // Print the current node with spaces for the level for (int j = 0; j < level; j++) { printf(" "); } printf("%d\n", arr[i]); // Recursively print left and right children printPreorder(2 * i + 1, level + 1); // Left child printPreorder(2 * i + 2, level + 1); // Right child } // Start with the root node printPreorder(0, 0); return 0; }