K-지폐
시간 제한2초메모리 제한1024 MB
S에서 T로 가는 경로 중 이용료 합이 K의 배수가 되는 최소 비용을 구하고, 불가능하면 IMPOSSIBLE을 출력한다.
문제
지수가 사는 나라는 번부터 번 도시까지 총 개의 도시와 도로 개가 존재한다. 번 도로는 번 도시에서 번 도시로 갈 수 있는 단방향 도로이며, 이용 시 만큼의 이용료를 지불해야 한다.
지수는 번 도시에서 번 도시로 여행을 가려고 한다. 지수는 번 도시에 도착하는 순간 지금까지 이용한 도로의 이용료를 합하여 지불한다.
지수는 원 지폐를 너무 좋아한 나머지, 지갑 안에 무한히 많은 원 지폐를 넣고 다닌다. 지수는 지갑 안에 원 지폐를 제외한 어떤 단위의 지폐도 가지고 다니고 싶어 하지 않기 때문에 이용료 합을 지불한 뒤 받는 거스름돈이 없도록 여행을 떠나고 싶다. 다시 말해 지수는 이용료 합이 의 배수가 되도록 여행하고 싶다.
지수가 거스름돈을 받지 않으면서 번 도시까지 여행하는데 지불해야 하는 이용료 합의 최솟값을 구하자.
입력
첫째 줄에 , , 가 주어진다.
둘째 줄에 와 가 공백으로 구분되어 주어진다.
셋째 줄부터 개의 줄에 걸쳐 가 공백으로 구분되어 주어진다. 번 도시에서 번 도시로 가는 도로의 이용료가 원이라는 뜻이다.
입력으로 주어지는 모든 값은 정수다.
출력
문제의 조건을 만족하도록 여행할 때, 지수가 지불해야하는 이용료 합의 최솟값을 출력한다.
조건을 만족하면서 여행할 수 없다면 IMPOSSIBLE을 출력한다.