만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

기차 배차 문제

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

요약
두 역 사이 단선 철도에서 각 열차가 지정된 시각 이후에 출발하도록 정하고, 반대 방향 열차가 선로에서 겹치지 않게 하면서 총 지연 시간을 최소화하는 문제입니다.
난이도

어려움10점 중 8점

유형
정렬, 동적 계획법, 그리디
정답자
아직 제출이 없습니다

문제

Bessie는 기차 배차 담당자로 새 일을 맡았다. 역은 AA와 BB 두 곳이 있고, 예산 문제로 두 역을 잇는 선로는 하나뿐이다. 기차가 시각 tt에 한 역에서 출발하면 다른 역에는 시각 t+Tt+T에 도착한다 (1≤T≤10121\le T\le 10^{12}).

출발 시각을 정해야 하는 기차는 NN대이다 (1≤N≤50001\le N\le 5000). ii번째 기차는 역 sis_i에서 시각 tit_i 이후에 출발해야 한다 (si∈{A,B}s_i\in \{A, B\}, 0≤ti≤10120\le t_i\le 10^{12}).

서로 반대 방향으로 달리는 기차는 같은 시각에 선로 위에 있을 수 없다. 두 기차가 충돌하기 때문이다. 같은 방향으로 가는 기차는 같은 시각에 여러 대가 선로를 달려도 된다. 기차의 크기는 무시할 만큼 작다고 가정한다.

입력

첫 줄에 NN과 TT가 주어진다. 이후 NN개의 줄에는 각각 ii번째 기차의 역 sis_i와 시각 tit_i가 주어진다.

출력

가능한 모든 운행 계획 가운데 전체 지연 시간의 최솟값을 출력한다. ii번째 기차가 시각 ai≥tia_i\ge t_i에 출발하면 전체 지연 시간은 ∑i=1N(ai−ti)\sum_{i=1}^N(a_i-t_i)이다.

예제4

  1. 예제 1

    입력
    1 95
    B 63
    
    예상 출력
    0
    
  2. 예제 2

    입력
    4 1
    B 3
    B 2
    A 1
    A 3
    
    예상 출력
    1
    
  3. 예제 3

    입력
    4 10
    A 1
    B 2
    A 3
    A 21
    
    예상 출력
    13
    
  4. 예제 4

    입력
    8 125000000000
    B 17108575619
    B 57117098303
    A 42515717584
    B 26473500855
    A 108514697534
    B 110763448122
    B 117731666682
    A 29117227954
    
    예상 출력
    548047356974