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

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

룰벤드

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

요약
직선 위에 놓인 여러 무빙워크가 각각 시작 위치, 끝 위치, 탑승 시간을 가질 때, 걷는 데 1미터당 g초가 걸리고 뒤로 걷는 것도 허용되는 상황에서 0번 지점에서 M번 지점까지 가는 최단 시간을 구한다.
난이도

보통10점 중 7점

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

문제

스웨덴 국제정보올림피아드 대표팀이 IOI 2020에 참가하기 위해 싱가포르에 막 도착했다. 수하물 찾는 곳으로 가는 길에 팀은 여러 개의 룰벤드(움직이는 보도)가 있는 긴 복도를 지나야 한다. 복도의 길이는 MM미터이고, 팀은 지금 복도의 시작점에 서서 수하물 찾는 곳까지 얼마나 빨리 갈 수 있을지 고민하고 있다. 복도에는 NN개의 룰벤드가 있다. 각 룰벤드는 복도 시작점으로부터 특정 거리에서 시작해 특정 거리에서 끝나며, 그 위를 이동하는 데 특정 시간이 걸린다. 모든 룰벤드는 복도 방향으로 움직이고, 룰벤드의 시작점에서만 탑승할 수 있으며 끝점에서만 내릴 수 있다. 팀이 룰벤드 위에 있지 않을 때 1미터를 걷는 데 gg초가 걸린다. 복도와 룰벤드는 매우 좁아서 복도와 나란히 걷는 데 걸리는 시간만 중요하다. 즉, 어떤 룰벤드가 시작점으로부터의 거리에서 끝나고 다른 룰벤드가 같은 거리에서 시작하면 두 룰벤드 사이를 이동하는 데 시간이 걸리지 않는다. 팀이 복도 전체를 통과하는 데 걸리는 최단 시간은 얼마인가?

때로는 복도를 조금 뒤로 걸어가서 팀을 멀리 데려다주는 룰벤드에 타는 것이 유리할 수 있다. 하지만 복도를 뒤로 가는 룰벤드는 없다.

입력

첫 번째 줄에는 세 정수 NN, MM, gg가 주어진다 (1≤N≤2×1051 \le N \le 2\times10^5, 2≤M≤2×1052 \le M \le 2\times10^5, 1≤g≤1001 \le g \le 100). NN은 룰벤드의 개수, MM은 복도의 길이(미터), gg는 팀이 룰벤드 위에 있지 않을 때 1미터를 걷는 데 걸리는 시간(초)이다. 다음 NN개의 줄은 룰벤드를 나타내며 각각 3개의 정수 s_i,e_i,t_is\_i, e\_i, t\_i를 포함한다 (1≤s_i<e_i≤M,1≤t_i≤1001\leq s\_i < e\_i\leq M,1\leq t\_i\leq100). s_is\_i는 복도 시작점으로부터 룰벤드 시작점까지의 거리(미터), e_ie\_i는 복도 시작점으로부터 룰벤드 끝점까지의 거리(미터), t_it\_i는 룰벤드 위를 이동하는 데 걸리는 시간(초)이다.

출력

팀이 복도를 통과하는 데 걸리는 시간(초)을 나타내는 정수 하나를 한 줄에 출력한다.

힌트

그림 1: 예제 1

예제 1에서 팀이 룰벤드 위에 있지 않을 때 1미터를 걷는 데 2초가 걸린다. 끝까지 가는 가장 빠른 방법은 5초가 걸리는 룰벤드로 걸어가서 타고, 2초가 걸리는 룰벤드로 걸어가서 타는 것이다. 이때 걸리는 총 시간은 4+5+2+2=134+5+2+2=13초이다.

그림 2: 예제 2

예제 2에서는 팀이 룰벤드 위에 있지 않을 때 1미터를 걷는 데 5초가 걸린다. 끝까지 가는 가장 빠른 방법은 8초가 걸리는 룰벤드로 걸어가서 타고, 1미터 뒤로 걸어가서 2초가 걸리는 룰벤드에 타고, 마지막 1미터를 걷는 것이다. 이때 걸리는 총 시간은 5+8+5+2+5=255+8+5+2+5=25초이다.

예제2

  1. 예제 1

    입력
    4 9 2
    2 5 5
    1 7 8
    4 7 4
    6 9 2
    
    예상 출력
    13
    
  2. 예제 2

    입력
    4 9 5
    1 6 8
    6 9 13
    1 3 5
    5 8 2
    
    예상 출력
    25