eolymp
bolt
Try our new interface for solving problems
Məsələlər

Перемешанные деревья

Перемешанные деревья

Задан неориентированный связный граф с n вершинами и m ребрами. Каждое ребро имеет счетчик, изначально равный 0. За одну операцию Вы можете выбрать произвольное остовное дерево и добавить любое значение v ко всем ребрам этого остовного дерева.

Определите, можно ли сделать каждый счетчик равным его целевому значению xi по простому модулю p, и предоставьте последовательность операций, обеспечивающих это.

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

Первая строка содержит три целых числа n, m и p - количество вершин, количество ребер и простой модуль (1n500, 1m1000, 2p109, p - простое число).

Следующие m строк содержат по три целых числа ui, vi, xi - две конечные точки i-го ребра и целевое значение счетчика этого ребра (1ui, vin, 0xi < p, uivi).

Граф связный. Циклов нет, но между одними и теми же двумя вершинами может быть несколько ребер.

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

Если целевые значения счетчиков не могут быть достигнуты, выведите -1.

В противном случае выведите t - количество операций, а затем t строк, описывающих последовательность операций. Каждая строка начинается с целого числа v (0v < p) - приращения счетчика для этой операции. Затем в той же строке следуют n - 1 целых чисел e1, e2, ..., en-1 (1eim) - ребра остовного дерева.

Количество операций t не должно превышать 2m. Вам не нужно минимизировать t. Принимается любой правильный ответ в пределах 2m. Вам разрешено повторять остовные деревья.

Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 128 MiB
Giriş verilənləri #1
3 3 101
1 2 30
2 3 40
3 1 50
Çıxış verilənləri #1
5
60 1 2
81 3 2
20 3 1
50 3 2
51 2 1
Giriş verilənləri #2
2 2 37
1 2 8
1 2 15
Çıxış verilənləri #2
3
23 1
15 2
22 1
Giriş verilənləri #3
5 4 5
1 3 1
2 3 2
2 5 3
4 1 4
Çıxış verilənləri #3
-1
Mənbə 2022 ICPC, NERC, Декабрь 7