fork download
  1. # 0KXRgNGW0L/Rg9C90L7Qsg==
  2. def solve_gold_cubes():
  3. try:
  4. line1 = input("Введіть розміри паралелепіпеда N M K (макс. 15): ").split()
  5. if len(line1) < 3:
  6. raise ValueError("Потрібно ввести три числа: N, M та K.")
  7. N, M, K = map(int, line1)
  8.  
  9. if N > 15 or M > 15 or K > 15:
  10. print("Помилка: N, M та K не повинні перевищувати 15.")
  11. return
  12.  
  13. print(f"\nВведіть паралелепіпед {N}x{M}x{K}.")
  14. print("Використовуйте '1' для Золотого кубика, '0' для Залізного.")
  15. print("Введення відбувається пошарово (K шарів), від Z=0 (підлога) до Z=K-1 (верх).\n")
  16.  
  17. cubes = []
  18.  
  19. for z in range(K):
  20. print(f"--- Шар Z={z} (Площина N={N} x M={M}) ---")
  21. layer = []
  22. for n in range(N):
  23. row_input = input(f"Рядок N={n} (M елементів): ").split()
  24. if len(row_input) != M:
  25. print(f"Помилка: Рядок N={n} повинен містити {M} елементів.")
  26. return
  27. layer.append([int(x) for x in row_input])
  28. cubes.append(layer)
  29.  
  30. except Exception as e:
  31. print(f"Помилка вводу: {e}")
  32. return
  33.  
  34. total_removable_gold = 0
  35.  
  36. for n in range(N):
  37. for m in range(M):
  38. highest_iron_z = -1
  39.  
  40. for z in range(K):
  41. if cubes[z][n][m] == 0:
  42. highest_iron_z = z
  43.  
  44. for z in range(highest_iron_z + 1, K):
  45. if cubes[z][n][m] == 1:
  46. total_removable_gold += 1
  47.  
  48. print(f"Максимальна кількість золотих кубиків, які можна витягнути: {total_removable_gold}")
  49.  
  50. solve_gold_cubes()
Success #stdin #stdout 0.07s 14176KB
stdin
Standard input is empty
stdout
Введіть розміри паралелепіпеда N M K (макс. 15): Помилка вводу: EOF when reading a line