Прошел первый KBO, можно сказать на отлично!

Задачи и система были темские!

Теперь давайте обсудим задачи...

Мини разбор:

Задача А. Кубик

В общем у нас 3n ходов(n - наверх, n - направо, n - вперед). Итого у нас получается нужно из 3n ходов выбрать n которые ведут наверх, и из остальных 2n нужно выбрать n направо.

$C_{3n}^n * C_{2n}^n$

Ну и конечно не забываем про длинку (Жаль, что нет явы).

Если кому-то нужно, то вот код.

Задача B. Мафия в КБТУ

1 - Обрабатываем запросы так:

1а - Для запроса "+ v" - добавляем в граф

1б - Для запроса "- v" - ничего не делаем

1с - Для запроса "? u v" - ничего не делаем

2 - Делаем ЛСА. Как? - можно так

3 - Теперь обрабатываем запросы заново

3а - Для запроса "+ v" - ничего не делаем

3б - Для запроса "- v" - ставим метку на v, что он умер

3с - Для запроса "? u v" - находим общего предка.

Если общий предок мертв, то поднимаемся до первого живого предка.

А все ссылки вершин, которые были мертвы по дороге до живого, переделываем к этому живому, чтобы в следующий раз опять не идти по этим всем мертвым вершинам.

Код.

Задача С. Различные числа

Не хотел париться со всеми случаями, написал хэш-функцию - код. Скорее всего не фул.