Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 

Купол четырёх стихий

(Время: 3 сек. Память: 64 Мб Сложность: 60%)

В королевстве Элерион четыре перво-стихии — Огонь, Вода, Воздух и Земля. Во время затмения маги-хранители возводят вокруг столицы защитный купол. Для этого они соединяют себя потоками стихий: каждый маг может передать силу ровно одной из четырёх стихий (а может и вовсе ничего не передавать) и может принять силы от не более чем трёх других магов — по одному потоку в оставшиеся стихийные каналы.

Верховный маг дал чертёж будущего купола в виде неориентированного графа из N вершин и M рёбер:

  • вершины — маги,
  • ребро — поток стихии, который должен существовать между двумя магами.

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

Ограничения на сеть:

  • Петли запрещены — поток не может идти от мага к самому себе.
  • У одного мага не более одного исходящего потока (он «отдаёт» только по одному каналу).
  • В каждого мага может «войти» не более трёх потоков (остальные три канала). Поскольку общее число каналов у мага равно 4.
  • Нельзя проложить два потока между одной и той же парой магов в противоположных направлениях.

Два способа считаются разными, если найдётся пара магов (A, B), для которой поток направлен A → B в одном варианте и наоборот — в другом. Какой именно стихии поток принадлежит, значения не имеет — важно только направление.

Входные данные

Входной файл INPUT.TXT содержит в первой строке два натуральных числа N, M (1 ≤ N, M ≤ 106). Далее в M строках по два числа x, y – номера вершин, соединённых ребром (1 ≤ x, y ≤ N).

Выходные данные

В выходной файл OUTPUT.TXT выведите ответ на задачу по модулю 109 + 7.

Примеры

INPUT.TXTOUTPUT.TXT
16 5
1 3
2 4
5 3
4 3
5 1
2
27 6
1 2
5 7
6 5
5 4
3 2
2 4
7

Пояснения к примерам

В первом примере:

Во втором примере:

Автор задачи

Владимир Игоревич Лукьянчиков

Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!

[Обсуждение] [Все попытки] [Лучшие попытки]


 Язык программирования C++
 Решение олимпиадных задач
 Региональные олимпиады
 ЕГЭ по информатике
 Авторские задачи
 Тренировочные олимпиады
 Фёдор Меньшиков. Олимпиадные задачи по программированию, 2006
 Сборник задач В.И. Лукьянчикова
 Булева Алгебра
 Геометрия
 Динамическое программирование
 Комбинаторика
 Разбор строк
 Разное
 Рекурсия, перебор
 Системы счисления
 Сортировка и последовательности
 Теория графов
 Формула
 Целочисленная арифметика
 Структуры данных
 Бинарный поиск
 Занимательная математика
 Занимательная математика 2
 A. Бизнес-проект
 B. Простая пара
 C. Купол четырёх стихий
 D. Карьеры и караваны

Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru