지옥에서 온 동료

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

요약
함정을 배치해 순찰원이 각 함정을 한 번씩만 써서 체류 시간과 이동 대상을 바꾸며, 마지막 방을 정상적으로 마칠 때까지 머무는 총 시간을 최대로 만든다.
난이도

보통10점 중 7점

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

문제

매일 밤 경비원은 공장의 방들을 정해진 순서대로 점검한다. 그는 11번 방에서 시작하며, 마지막 방인 nn번 방을 점검한 뒤 공장을 나와 집으로 돌아간다. 정상적인 점검에서는 ii번 방에 did_i의 시간 동안 머문 다음 i+1i+1번 방으로 이동한다.

점검 일정을 알고 있는 짓궂은 동료는 경비원을 최대한 오래 붙잡아 두고 싶어 한다. 경비원이 도착하기 전에, 동료는 원하는 방들의 임의의 부분집합에 장난을 설치할 수 있다. 경비원이 장난이 설치된 방을 점검하면 속아 넘어가, 그 방에 did_i 대신 tditd_i의 시간 동안 머물고, 이후 i+1i+1번 방 대신 tcitc_i번 방(어느 방이든 될 수 있다)으로 이동한다.

장난은 경비원이 그 방에 처음 들어갔을 때에만 작동한다. 이후 그 방을 다시 방문할 때에는 정상적으로 행동한다(did_i만큼 머물고 i+1i+1번 방으로 이동). 장난은 경비원을 뒤쪽 방으로 보낼 수도 있어 같은 방을 여러 번 지날 수 있고, 앞쪽 방으로 보낼 수도 있어 일부 방을 아예 건너뛸 수도 있다. 예를 들어 방이 다섯 개이고 순서대로 점검할 때, 22번 방에만 장난을 설치하고 그것이 44번 방을 가리킨다면 경비원은 1 → 2 → 4 → 5 순으로 이동한 뒤 집으로 가며, 33번 방은 점검하지 않는다.

경비원은 마지막 방인 nn번 방을 정상적으로 점검했을 때에만 집으로 돌아간다. 동료가 경비원을 공장에 머물게 할 수 있는 최대 총 시간을 구하여라.

입력

첫 번째 줄에 테스트 케이스의 수 TT가 주어진다.

각 테스트 케이스의 첫 줄에는 방의 개수를 나타내는 정수 nn (0 ≤ nn ≤ 100)이 주어진다. 그 다음 nn개의 줄에 방들이 순서대로 주어지며, ii번째 줄에는 세 정수 did_i, tditd_i, tcitc_i (1 ≤ tcitc_i ≤ nn)가 주어진다. 각각 ii번 방의 정상 점검 시간, ii번 방에 장난이 설치되었을 때의 점검 시간, 그리고 ii번 방에 장난이 설치되었을 때 경비원이 이동하는 방의 번호이다. 11번 방이 항상 첫 방이고 nn번 방이 항상 마지막 방이다.

출력

각 테스트 케이스마다 한 줄에 정수 하나를 출력한다. 경비원이 마지막 방을 정상적으로 점검하고 나가기 전까지 공장에 붙잡혀 있을 수 있는 최대 총 시간이다.

예제3

  1. 예제 1

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

    입력
    1
    1
    3 7 1
    
    예상 출력
    10
    
  3. 예제 3

    입력
    1
    0
    
    예상 출력
    0