졸업 요건 (라지)

관측된 차들과 어느 순간에도 같은 지점에 놓이지 않으면서 원형 교차로를 시계 방향으로 가장 오래 주행하는 시간을 구합니다.

보통7구간수학그리디아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

어썸 프로그래머 대학교 학생에게는 졸업을 앞두고 치르는 전통이 있다. 그중 하나가 회전교차로를 역주행으로 도는 것이다. 한 바퀴 도는 것만으로도 충분히 무모하지만, 너는 한 걸음 더 나아가 멈추지 않고 최대한 오래 역주행으로 버티고 싶다.

회전교차로에는 교차점 NN개가 원을 따라 같은 간격으로 놓여 있다. 자동차는 교차점 하나에서 원에 진입한 다음 1초마다 반시계 방향으로 다음 교차점으로 이동하고, 빠져나갈 교차점에 도착하면 원을 떠난다.

너는 XX초 동안 회전교차로를 지켜보면서 자동차마다 진입한 시각, 진입한 교차점, 빠져나간 교차점을 기록했다. 모든 자동차는 1초에 교차점 하나씩 반시계 방향으로 움직인다. 관찰한 자동차는 모두 진입한 교차점으로 되돌아오기 전에 원을 떠났다. 회전교차로에는 차선이 여러 개라서 같은 시각에 같은 교차점에 자동차가 여러 대 있어도 된다.

이 시간 동안 너는 시계 방향으로 최대 몇 초를 달릴 수 있을까? 0 이상의 정수 시각에 원에 진입하고 XX 이하의 시각에 원을 떠나야 하며, 한 번 떠나면 다시 들어올 수 없다. 원 안에서는 1초에 교차점 하나씩 시계 방향으로 움직인다. 진입 시각과 진입 교차점, 이탈 시각은 네가 고른다.

원을 길이 NN의 연속된 고리로 보고 너와 다른 자동차를 그 고리 위를 움직이는 점이라고 하자. 정수 시각이든 아니든 어떤 순간에도 너의 점이 다른 자동차의 점과 같은 위치에 있으면 안 된다. 그래서 다른 자동차가 진입하는 순간에 그 교차점에서 원을 떠날 수 없고, 다른 자동차가 빠져나가는 순간에 그 교차점으로 진입할 수 없고, 마주 오는 자동차를 지나칠 수도 없다. 마주 보고 달리면 두 교차점 사이 한가운데에서 만나기 때문이다.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. 각 테스트 케이스의 첫째 줄에는 관찰한 자동차의 수 CC가 주어진다. 둘째 줄에는 정수 XXNN이 주어진다. XX는 회전교차로를 지켜본 시간(초)이고, NN은 교차점의 개수다. 이어지는 CC개의 줄 가운데 ii번째 줄에는 정수 sis_i, eie_i, tit_i가 주어진다. 차례로 자동차가 진입한 교차점, 빠져나간 교차점, 진입한 시각이다. 교차점에는 반시계 방향으로 11번부터 NN번까지 번호가 붙어 있다. 즉 11번에서 반시계 방향으로 다음 교차점이 22번이다.

제한

  • 1T1001 \le T \le 100
  • 0C10000 \le C \le 1000
  • 1X10101 \le X \le 10^{10}
  • 3N10103 \le N \le 10^{10}
  • 1si,eiN1 \le s_i, e_i \le N
  • sieis_i \ne e_i
  • 0ti0 \le t_i
  • 관찰한 자동차는 모두 시각 XX 또는 그보다 이른 시각에 원을 떠난다.

출력

각 테스트 케이스마다 "Case #x: y" 형식으로 한 줄씩 출력한다. x는 1부터 시작하는 테스트 케이스 번호이고, y는 회전교차로 안에서 달릴 수 있는 최대 시간(초)이다. 원에 아예 진입할 수 없을 때와, 진입은 할 수 있지만 다음 교차점으로 한 칸도 움직일 수 없을 때 모두 y는 0이다.

진입 시각은 정수여야 하므로 지나가는 모든 교차점에 정수 시각에 도착한다.

힌트

예제 입력의 첫 번째 테스트 케이스에는 자동차가 한 대 있고, 위 그림처럼 움직인다. 1초 동안 역주행하는 방법은 여러 가지다. 시각 0에는 다른 자동차가 1번 교차점에 있으므로, 시각 1에 1번 교차점으로 진입해서 4번 교차점까지 달릴 수 있다. 여기서 3번 교차점으로 더 가면 그 1초 동안 3번에서 4번으로 오는 자동차를 지나치게 되므로 안 된다. 시각 0에 4번 교차점으로 진입해서 3번 교차점까지 달리는 방법도 있다.

두 번째 테스트 케이스에서는 시각 1에 5번 교차점으로 진입해서 3번 교차점까지 역주행하면 2초를 달린다. 세 번째 테스트 케이스에서는 매 정수 시각마다 모든 교차점에 자동차가 있어서 진입조차 할 수 없다. 네 번째 테스트 케이스에는 자동차가 없으므로 시각 0에 아무 교차점으로 진입해서 시각 6까지 계속 돌면 된다. 다섯 번째 테스트 케이스에서는 진입은 할 수 있지만 교차점이 세 개뿐이라 다음 교차점으로 움직이면 반드시 다른 자동차와 부딪힌다.

실제 회전교차로에서 역주행하는 것은 위험하다. 따라 하지 않기를 권한다.