Задача Trees
Паскаліс та Пітоннік вирішили зіграти в нову гру. Вони
накреслили поле для гри в вигляді "лісу", що складається
з N "дерев", в "корінь" кожного "дерева" поставили
фішку. За один хід гравець може перемістити одну фішку з
вершини на вершину по одному з "дерев" по ребру вгору.
Програє той, хто не може зробити черговий хід. Паскаліс
завжди ходить першим. Треба дізнатися, хто виграє –
Паскаліс чи Пітоннік, при правильній грі суперника, що
програв. Якщо виграє Паскаліс, то визначити, скільки
існує для нього варіантів першого ходу, щоб виграти при
будь-якій грі Пітонніка. Якщо ж виграє Пітоннік, то
вивести, скільки різних "дерев" (по одному) можна
прибрати з ігрового "лісу", щоб виграти міг Паскаліс при
будь-якій грі Пітонніка (такі дерева можуть
і не існувати ).
Технічні умови. Програма читає з клавіатури кількість
"дерев" N (1<=N<=20), а потім N послідовностей, кожна з
яких - кількість вершин P (1<=P<=50) чергового "дерева"
і P-1 пар цілих чисел – номери вершин, що з’єднані
відповідним ребром ( "коренева" вершина, з якої
починається гра, завжди має номер 1). Всі числа
вводяться однією стрічкою через пропуски. Програма
виводить два числа. Якщо виграв Паскаліс- то
1, і
через пропуск – кількість можливих для нього початкових
ходів, які привели б до успіху при будь-якій грі
Пітонніка. Якщо ж виграв Пітоннік – програма виводить 2
і через пропуск – скільки різних "дерев" (по одному)
можна прибрати з ігрового "лісу", щоб виграти міг
Паскаліс при будь-якій грі Пітонніка. Якщо таких немає,
вивести 0
Приклад_1.
Введення
2 3
1 2
2 3
3
1
2 1 3
Виведення
1 3
Приклад_2.
Введення
3 3 1 2
2
3
2 1
2
3
1 2 1 3
Виведення
2 2
Задача Trees
Паскалис и Питонник решили сыграть в новую игру. Они
начертили поле для игры в виде "леса", состоящего из N
"деревьев", в "корень" каждого "дерева" поставили
фишку. За один ход игрок может переместить одну фишку
из вершины в вершину по одному из "деревьев" по ребру
вверх. Проигрывает тот, кто не может сделать очередной
ход. Паскалис всегда ходит первым. Необходимо узнать,
кто выиграет - Паскалис или Питонник, при правильной
игре проигравшего соперника. Если выигрывает Паскалис,
то определить, сколько существует для него вариантов
первого хода, чтобы выиграть при любой игре Питонника.
Если же выиграет Питонник, то вывести, сколько
различных "деревьев" (по одному) можно убрать с
игрового "леса", чтобы выиграть мог Паскалис при любой
игре Питонника (а таких деревьев может и не быть).
Технические условия. Программа читает с клавиатуры
количество "деревьев" N (1 <= N <= 20), а затем N
последовательностей, каждая из которых - количество
вершин P(1<=P<=50) очередного "дерева" и P-1
пар целых
чисел - номера вершин, соединенных соответствующим
ребром ("корневая" вершина, с которой начинается игра,
всегда имеет номер 1). Все числа вводятся одной
строчкой через пробелы. Программа выводит два числа.
Если выиграл Паскалис - то 1, и через пробел -
количество возможных для него начальных ходов, которые
привели бы к успеху при любой игре Питонника. Если же
выиграл Питонник - программа выводит 2 и через пробел
- сколько разных "деревьев" (по одному) можно убрать
с игрового "леса", чтобы выиграть мог Паскалис при
любой игре Питонника. Если таких нет, вывести
0.
Примеры.
Ввод
2 3 1 2 2 3 3 1 2 1 3
Вывод
1 3
Ввод
3 3 1 2 2 3 2 1 2 3 1 2 1 3
Вывод
2 2
|