Дураки и дороги | 프로그래밍의 벗 PivotOJ
PivotOJ

Дураки и дороги

시간 제한: 2000ms메모리 제한: 1024MB출처: MOOI 2015-16 qualBOJ 30768
이 문제는 본문 이미지 일부가 표시되지 않습니다. 텍스트만으로 풀이가 어려울 수 있습니다.

문제

Как известно, в Берляндии ровно две проблемы, и дороги --- одна из них.

Из курса школьной географии вам должно быть знакомо, что в Берляндии ровно nn городов и mm дорог с двусторонним движением. Некоторые дороги, будем честны, находятся в плачевном состоянии.

Для поддержания качества дорог правительство объявило некоторые из них платными. Каждая платная дорога обслуживается одной из kk компаний, которая и обеспечивает своевременный ремонт дороги (она же и взимает плату за проезд по ней).

В Берляндии не только две проблемы, но и две столицы. Они находятся на разных широтах, поэтому одну называют Северной, а другую --- Южной. Споры о том, какая столица главнее, длятся уже много лет, но для компаний важно не кто главнее, а то, что именно между этими двумя городами сосредоточен основной автомобильный трафик.

Берляндская антимонопольная служба заподозрила, что дороги были распределены нечестно, а именно, что существует путь между Северной столицей и Южной, такой что какая-то из компаний не владеет ни одной из дорог этого пути. По мнению представителей службы, это создает нездоровую конкуренцию, и таких ситуаций необходимо избегать, но для начала необходимо выявить все компании, страдающие от подобной несправедливости. Эту нелёгкую задачу антимонопольная служба поручила вам.

Назовем компанию обделённой, если существует какой-нибудь путь между двумя столицами, на котором нет ни одной дороги, обслуживаемой этой компанией. Выведите номера всех обделённых компаний.

입력

В первой строке входных данных записаны три числа nn, mm и kk (2n,k100000,1m1000002 \leq n, k \leq 100\,000, 1 \leq m \leq 100\,000) --- количество городов, дорог и компаний соответственно.

Далее следуют mm строк, описывающих дороги. В ii-й из них записаны три целых числа uiu_i, viv_i и cic_i (1ui,vin1 \leq u_i, v_i \leq n, 0cik0 \leq c_i \leq k) --- номера городов, соединенных ii-й дорогой, и номер компании, которая эту дорогу обслуживает. При этом ci=0c_i = 0 означает, что дорога осталась бесплатной и не принадлежит ни одной компании.

В последней строке записаны два числа aa и bb (1a,bn,ab1 \leq a, b \leq n, a \ne b) --- номера городов, являющихся Северной и Южной столицами соответственно.

Гарантируется, что никакая дорога не соединяет город сам с собой и между каждой парой городов проходит не более одной дороги.

출력

В первой строке выведите количество обделённых компаний.

Во второй строке выведите номера всех обделённых компаний в порядке возрастания.

힌트

В первом примере есть путь 1-2-3-4, на котором дороги только первой компании (на рисунке красные) и бесплатные (черные) и нет дорог второй компании, а также путь 1-3-2-4, на котором только дороги второй компании (синие) и бесплатные.

Во втором примере существует всего 2 пути из 1 города в 4: 1-2-4 и 1-3-4. На обоих присутствуют дороги обеих компаний.

[이미지 1]

예제

예제 1

입력
4 5 2
1 2 1
1 3 2
2 4 2
3 4 1
2 3 0
1 4
출력
2
1 2

예제 2

입력
4 4 2
1 2 1
1 3 2
2 4 2
3 4 1
1 4
출력
0
이 문제는 채점 준비 중입니다. 테스트 데이터가 확보되면 제출이 가능합니다.