ТПУ: основной тур
B. Сравнить деревья
Витя составил для олимпиады задачу, ответом в которой является описание дерева. Теперь Вите нужно написать чекер (программу, проверяющую правильность решений участников) для этой задачи.
Чекер должен сравнивать описанное участником дерево с тем, что приведено в эталонном ответе. Проблема в том, что одно и то же дерево можно описать по-разному.
Вершина в корне дерева имеет номер 1, остальные вершины могут быть занумерованы как угодно. Если у вершины несколько дочерних вершин, то они могут быть перечислены в любом порядке.
Помогите Вите — напишите программу, которая по двум описаниям деревьев определяет, описывают ли они одно и то же дерево.
Первая строка содержит одно целое число k_{1} — количество вершин в первом дереве (1 \leqslant k_{1} \leqslant 1000).
В последующих k_{1} строках содержатся описания вершин первого дерева. i-я строка содержит описание i-й вершины в следующем формате:
количество дочерних вершин для вершины i, затем прописная буква латинского алфавита, которой помечена i-я вершина, а затем номера всех вершин, являющихся дочерними для i-й. Буква отделяется от количества вершин и их номеров пробелом, номера вершин так же разделяются пробелом.
Далее в том же формате следует размер второго дерева и описание его вершин.
Корневыми вершинами в обоих деревьях считаются вершины с номером 1.
Выведите «Yes
», если описаны одинаковые деревья. В противном случае выведите «No
».
Стандартный ввод | Стандартный вывод |
---|---|
5 3 A 2 3 4 0 C 0 B 1 C 5 0 D 5 3 A 3 5 4 0 D 0 B 0 C 1 C 2 | Yes |