렉시코폴리스
시간 제한2초메모리 제한1024 MB
간선 번호가 아니라 간선의 마법 수를 기준으로, 정확히 k개의 간선으로 이루어진 s에서 t까지의 사전순 최소 경로를 찾습니다. 그 경로의 값을 x를 밑으로 하는 다항식으로 계산해 10^9+7로 나눈 나머지를 출력합니다.
문제
렉시코폴리스는 고대 전설과 보물로 알려진 도시이다. 이 도시는 복잡하게 얽힌 단방향 도로망으로 유명하다. 교차로는 개이고 단방향 도로는 개이다. 도로 는 교차로 에서 로만 이동할 수 있게 하며, 마법의 수 가 붙어 있다.
에서 까지 길이가 인 경로는 도로의 나열 이며, 이 순서대로 따라가면 에서 에 이를 수 있다. 두 경로를 비교할 때는 마법의 수가 처음으로 달라지는 위치를 본다. 그 위치에서 수가 작은 쪽이 사전순으로 더 작은 경로이다. 도로 번호가 아니라 마법의 수로 비교한다.
에서 까지 길이가 인 경로 중 사전순으로 가장 작은 경로를 찾은 여행자는 정부에서 선물을 받는다는 소문이 있다. 이 경로를 찾는 프로그램을 작성하시오.
입력
첫 줄에 여섯 정수 , , , , , 가 주어진다. 은 교차로의 수, 은 도로의 수, 는 시작 교차로, 는 도착 교차로, 는 답을 계산할 때 쓰는 수, 는 경로의 길이이다. 이어지는 개의 줄에는 정수 , , 가 주어진다. 도로 가 에서 로 향하며 마법의 수가 라는 뜻이다.
출력
에서 까지 길이가 인 경로가 없으면 -1을 출력한다. 경로가 있으면 사전순으로 가장 작은 경로 를 골라 의 값을 로 나눈 나머지를 출력한다.
제한
- 이고 이다.
- 순서쌍 는 서로 겹치지 않는다.