import sys class Node: def __init__(self, text): self.text = text self.right = None self.left = None self.otazka = text.endswith("?") def para_stromov(lines, index): if index >= len(lines): raise ValueError("Chybna databaza") text = lines[index] if not text: raise ValueError("Chybna databaza") node = Node(text) index += 1 if node.otazka: node.left, index = para_stromov(lines, index) node.right, index = para_stromov(lines, index) return node, index def pocet_nodov(node): if not node: return 0, 0 if node.otazka: a_left, n_left = pocet_nodov(node.left) a_right, n_right = pocet_nodov(node.right) return 1 + a_left + a_right, n_left + n_right else: return 0, 1 def main(): danii = sys.stdin.read() if not danii: print("Expert zo zoo to vie.") print("Chybna databaza") return lines = danii.splitlines() print("Expert zo zoo to vie.") if not lines: print("Chybna databaza") return try: prvi = lines.index("") except ValueError: print("Chybna databaza") return stromlines = lines[:prvi] vibir = lines[prvi + 1 :] if not stromlines: print("Chybna databaza") return try: root, druhy = para_stromov(stromlines, 0) except Exception: print("Chybna databaza") return if druhy != len(stromlines): print("Chybna databaza") return n_pocet, a_pocet = pocet_nodov(root) print(f"Pocet otazok: {n_pocet}") print(f"Pocet odpovedi: {a_pocet}") print("Odpovedajte 'a' pre prvu moznost alebo 'n' pre druhu moznost.") potocni = root viber_indx = 0 while potocni.otazka: print(potocni.text) if viber_indx >= len(vibir): print("Koniec vstupu") return choice = vibir[viber_indx] viber_indx += 1 if choice != "a" and choice != "n": print("Nerozumiem") return if choice == "a": potocni = potocni.left else: potocni = potocni.right print(potocni.text) print("Koniec") if __name__ == "__main__": main()