Codeforces Beta Round 48 |
---|
Закончено |
В соответствии с последним указом Президента Берляндии каждый город страны должен иметь собственное здание Министерства Обороны (свой собственный Пентагон). Мегаполис Бербург не стал исключением. В этом городе n перекрестков, некоторые пары из которых соединены двунаправленными дорогами. Всего в городе m дорог, между каждой парой перекрестков не более одной.
В настоящий момент обсуждается выбор места расположения Пентагона в Бербурге. Решено, что Пентагон должен занимать территорию пяти различных перекрестков, которые соединены в цикл дорогами. В порядке цикла по дорогам будет построена специальная стена (как и положено — с высоким напряжением, колючей проволокой и т.п.). Таким образом, количество возможных способов построить Пентагон в городе равно количеству различных циклов длины 5, составленных из перекрестков и дорог.
Ваша задача вывести количество способов построить Пентагон в Бербурге. Учтите, что в этой задаче пройдет только достаточно оптимизированное решение, так что обязательно протестируйте свой код на максимальном тесте.
В первой строке записаны два целых числа n и m (1 ≤ n ≤ 700;0 ≤ m ≤ n·(n - 1) / 2), n — количество перекрестков, а m — количество дорог в городе. Далее в m строках содержатся описания дорог, по одной дороге в строке. Каждая дорога задана парой целых чисел ai, bi (1 ≤ ai, bi ≤ n;ai ≠ bi), где ai и bi — номера соединяемых дорогой перекрестков. Перекрестки занумерованы от 1 до n. Не гарантируется, что из любого перекрестка можно добраться в любой другой, двигаясь по дорогам.
Выведите единственное число — искомое количество способов. Пожалуйста, не используйте спецификатор %lld для чтения или записи 64-х битовых чисел на С++. Рекомендуется использовать поток cout (также вы можете использовать спецификатор %I64d).
5 5
1 2
2 3
3 4
4 5
5 1
1
5 10
1 2
1 3
1 4
1 5
2 3
2 4
2 5
3 4
3 5
4 5
12
Название |
---|