Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
courses:a4m33pal:zkouska2014_1 [2013/12/18 17:05] ondrejmirtes vytvořeno |
courses:a4m33pal:zkouska2014_1 [2025/01/03 18:29] (aktuální) |
||
---|---|---|---|
Řádek 25: | Řádek 25: | ||
Toto řešení získalo 10/12 a pravděpodobně by se dalo urychlit jinou reprezentací a porovnáváním certifikátů. | Toto řešení získalo 10/12 a pravděpodobně by se dalo urychlit jinou reprezentací a porovnáváním certifikátů. | ||
+ | ----- | ||
+ | staci "certifikaty" sypat do hashmapy, aby se dala v konstatnim case overit pritomnost a je to na 12/12 | ||
+ | |||
+ | Pro ilustraci kód v Pythonu: | ||
+ | |||
+ | from sys import stdin | ||
+ | N = int(stdin.readline()) | ||
+ | nodes, possible_roots, categories = [[None, None] for i in range(N)], set(range(N)), dict() | ||
+ | for a, b, c, d in (stdin.readline().split() for i in range(N-1)): | ||
+ | nodes[int(a)][int(b)] = (int(c), int(d)) | ||
+ | possible_roots.discard(int(c)) | ||
+ | r = lambda i: categories.setdefault(tuple(sorted( | ||
+ | (r(nodes[i][b][0]), nodes[i][b][1]) for b in (0, 1) if nodes[i][b])), len(categories)) | ||
+ | print(r(possible_roots.pop()) + 2) | ||
+ |