아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

스키장

시간 제한1초메모리 제한1024 MB

요약
항상 낮아지는 방향의 스키 코스 그래프와 최대 K번 탈 수 있는 리프트가 주어질 때, S에서 T까지 이동하며 얻는 최대 스키 시간을 구한다.
난이도

어려움10점 중 8점

유형
그래프, 동적 계획법, 최단 경로, 그리디
정답자
아직 제출이 없습니다

문제

당신은 친구들과 함께 스키를 타러 스키장에 왔다. 스키장에는 일정 고도마다 중간 지점이 설치되어 있다. 중간 지점은 총 NN개 있으며, 고도가 감소하는 순서대로 1번부터 NN번까지 번호가 매겨져 있다. 즉 가장 높은 지점이 1번 지점, 가장 낮은 지점이 NN번 지점이다.

현재 당신은 SS번 지점에 친구들과 함께 있다. 당신의 친구들은 각자 자유롭게 스키를 탄 이후, 끝나면 TT번 지점에 모이기로 약속했다.

스키장에는 MM개의 코스가 있다. 각 코스는 aia_i번 지점에서 bib_i번 지점 방향으로 이어지며, 코스에 진입하면 tit_i시간 동안 스키를 탈 수 있다. 코스는 항상 고도가 감소하는 방향으로 이어진다. 즉, ai<bia_i < b_i를 만족한다.

또한, 각 코스에는 스키 리프트가 있다. 스키 리프트는 코스와는 반대 방향으로, 고도가 증가하는 방향으로 이어진다. 즉, 스키 리프트를 타면 bib_i번 지점에서 aia_i번 지점으로 이동할 수 있다. 스키 리프트는 최대 KK번 탑승할 수 있다.

당신은 스키 코스와 리프트만을 사용해서 TT번 지점까지 가되, 스키를 타는 시간을 최대화하려고 한다. 리프트를 타는 시간은 스키를 타는 시간에 포함되지 않는다. 코스의 정보가 주어질 때, 최대 몇 시간 동안 스키를 탈 수 있을지 구하여라.

입력

첫 번째 줄에 다섯 개의 정수 N,M,K,S,TN, M, K, S, T (1≤N,M≤1051 \le N, M \le 10^5, 0≤K≤100 \le K \le 10, 1≤S,T≤N1 \le S, T \le N) 가 주어진다.

이후 MM 개의 줄에 각 코스의 정보가 세 개의 정수 ai,bi,tia_i, b_i, t_i (1≤ai<bi≤N1 \le a_i < b_i \le N, 1≤ti≤1091 \le t_i \le 10^9) 로 주어진다.

서로 다른 두 지점을 잇는 코스는 최대 하나이다.

출력

최대 몇 시간 동안 스키를 탈 수 있는지 하나의 정수로 출력하라.

만약 어떻게 코스와 리프트를 선택해도 TT번 지점으로 이동할 수 없다면 -1을 대신 출력하라.

예제4

  1. 예제 1

    입력
    3 2 1 1 3
    1 2 10
    2 3 5
    
    예상 출력
    25
    
  2. 예제 2

    입력
    3 3 1 1 3
    1 2 10
    2 3 5
    1 3 1
    
    예상 출력
    30
    
  3. 예제 3

    입력
    3 2 1 3 1
    1 2 10
    2 3 5
    
    예상 출력
    -1
    
  4. 예제 4

    입력
    3 2 2 3 1
    1 2 10
    2 3 5
    
    예상 출력
    0