시간 제한
메모리 제한
시간 제한
2초
메모리 제한
128 MB
도시 N개로 이루어진 나라가 있다. 도시는 0, 1, 2, ..., N-1번으로 번호가 붙어 있다. 현재 당신은 S번 도시에 있고, T번 도시까지 자동차로 이동하려고 한다.
일부 도시 쌍은 도로로 연결되어 있다. 각 도로에는 길이와, 그 도로를 특정 방향으로 달릴 때의 피로도가 있다. 같은 도로라도 어느 방향으로 달리느냐에 따라 피로도가 다를 수 있다. 피로도는 음수일 수도 있으며, 이는 그 방향으로 달릴 때 만족감을 얻는다는 뜻이다.
이동할 때는 각 도시에서 출발하는 방향별 도로 중 피로도가 가장 작은 도로만 사용할 수 있다. 한 도시에서 최소 피로도를 갖는 방향별 도로가 여러 개라면, 그 도로들은 모두 사용할 수 있다.
사용 가능한 도로만 이용하여 S에서 T로 가는 경로를 고르려고 한다. 우선 피로도 합이 최소가 되어야 하며, 그런 경로가 여러 개라면 길이 합이 최소인 경로를 선택한다.
도로 정보를 바탕으로 최적 경로의 피로도 합과 길이 합을 구하시오.
첫째 줄에 네 정수 N, M, S, T가 주어진다. N은 도시의 수이고 1 <= N <= 100이다. M은 도로의 수이고 0 <= M <= 5000이다.
다음 M개의 줄에는 각 도로를 나타내는 다섯 정수 u, v, a, c, b가 주어진다. 이는 u번 도시와 v번 도시를 잇는 길이 c의 도로가 있고, u에서 v로 달릴 때의 피로도는 a, v에서 u로 달릴 때의 피로도는 b라는 뜻이다.
도로의 길이 c는 1 이상 100 이하의 정수이다. 피로도 a, b는 각각 -100 이상 100 이하의 정수이다. 같은 두 도시를 잇는 도로가 여러 개 있을 수 있다.
최적 경로가 존재하면 첫째 줄에 피로도 합과 길이 합을 공백으로 구분하여 출력한다.
S에서 T로 갈 수 있는 경로가 없다면 VOID를 출력한다. 피로도 합을 끝없이 작게 만들 수 있다면 UNBOUND를 출력한다.