한 방향으로 운행하는 노선에서 체감하는 구간 요금을 내는 승객들이 겹치는 구간에서 입장 카드를 교환할 때 도시가 입는 최대 손실액을 구합니다.
어려움8그리디정렬누적 합수학아직 제출이 없습니다시간 제한5초메모리 제한512 MB도시가 첫 지하철 노선을 개통했다. 역은 N개이고 1번부터 N번까지 번호가 붙어 있다. 요금은 승차권이 아니라 입장 카드로 계산한다.
지하철에 들어가는 승객은 입장 카드를 한 장 받는다. 카드에는 승객이 들어간 역이 적혀 있다. 나갈 때는 카드를 한 장 반납해야 하고, 카드에 적힌 역과 카드를 반납하는 역 사이의 거리에 따라 요금을 낸다.
이 제도를 들인 뒤 도시는 수입이 기대만큼 늘지 않는다는 사실을 알아차렸다. 원인은 승객끼리 입장 카드를 바꾸는 것이었다. 예를 들어 한 사람이 역 A에서 들어가 두 역을 이동해 역 B에서 나가고, 다른 사람이 역 B에서 들어가 세 역을 이동해 역 C에서 나간다고 하자. 원래 두 사람이 내는 요금은 모두 합쳐 2N−1+3N−3=5N−4다. 그런데 두 사람이 역 B에서 카드를 바꾸면, 첫 번째 사람은 B가 적힌 카드를 역 B에서 반납하므로 거리가 0이 되어 공짜로 이동한다. 두 번째 사람은 역 C에서 A가 적힌 카드를 반납하는데, 두 역의 거리가 5이므로 5N−10을 낸다. 도시는 6파운드를 손해 본다.
도시는 이런 교환이 널리 퍼지면 얼마까지 손해를 볼 수 있는지 알고 싶다. 노선은 1번 역에서 N번 역까지 모든 역을 순서대로 지나는 한 방향만, 열차는 한 대만 생각한다. o번 역에서 타서 e번 역에서 내리는 승객은 o에서 카드를 받고, o와 e 사이 어디서든 다른 승객과 카드를 몇 번이든 바꿀 수 있다. o에서 내리는 사람이나 e에서 타는 사람과도 바꿀 수 있다. 그리고 e에서 카드를 한 장 반납하고 나간다. 나가려면 반드시 카드를 한 장 반납해야 한다. 승객은 중간에 열차에서 내리지 않는다. 즉 들고 있던 카드를 반납하고 새 카드를 받는 일은 없다.
어느 역에서 어느 역까지 몇 명이 이동하는지 적은 교통량 표가 주어진다. 승객이 손해를 최대로 만들도록 카드를 바꾼다고 할 때, 도시가 입는 손해를 구하여라. 손해는 아무도 카드를 바꾸지 않았을 때의 총요금에서, 카드를 바꿔 만들 수 있는 총요금의 최솟값을 뺀 값이다.
첫 줄에 테스트 케이스의 수 T가 주어진다. 각 테스트 케이스의 첫 줄에는 역의 수 N과 출발역과 도착역 쌍의 수 M이 주어진다. 역은 1번부터 N번까지 번호가 붙어 있다. 이어지는 M개 줄에는 세 정수 oi, ei, pi가 주어진다. oi번 역에서 타서 ei번 역에서 내리는 승객이 pi명이라는 뜻이다.
제한:
각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. x는 1부터 시작하는 테스트 케이스 번호이고, y는 카드 교환으로 도시가 입는 손해를 1000002013으로 나눈 나머지다.
첫 번째 예제 케이스는 문제에서 설명한 상황이다. 두 승객이 3번 역에서 만나 카드를 바꾼다. 두 번째 예제 케이스에서는 두 승객이 만나는 구간이 없어서 카드를 바꿀 수 없고, 도시가 입는 손해도 없다. 세 번째 예제 케이스에서는 먼저 탄 두 승객 가운데 한 명만 나중에 탄 승객과 카드를 바꿀 수 있다.