#include #define MAX_K 10000 // Úloha 26-2-4 - lehčí varianta (v čase O(K)) // Vstup: počet kostek (K), K nosností kostek (l) int main() { int K; // Počet kostek int l[MAX_K]; // Nosnosti jednotlivých kostek int p[MAX_K]; // Počty kostek dané nosnosti int i; // Pomocná proměnná //Načtení vstupu scanf("%d", &K); for (i=0; i K-1) l[i] = K-1; // Omezení nosností (2. krok vzorového řešení) p[l[i]]++; // Spočítání jednotlivých typů kostek (3. krok vzorového řešení) } // Kontrola postavitelnosti věže (vylepšený 4. krok vzorového řešení) for (i=K-1; i>=0; i--) { if (p[i] == 0) { printf("Věž nelze postavit.\n"); return 0; } if (i>0) p[i-1] += p[i] - 1; } printf("Věž lze postavit.\n"); return 0; }