패셔니스타

면접 대비

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

요약
각 날짜의 최고 기온이 옷의 허용 범위에 들어야 한다는 조건 아래, 연속한 두 날 입은 옷의 화려함 차이 절댓값 합이 최대가 되도록 매일 옷을 고른다.
난이도

보통10점 중 5점

유형
동적 계획법, 배열, 구현, 수학
정답자
아직 제출이 없습니다

문제

상근이는 앞으로 DD일 동안(1일부터 DD일까지) 매일 어떤 옷을 입을지 계획하려고 한다. 옷 스타일은 그날의 최고 기온과 밀접한 관련이 있어서, 일기 예보를 바탕으로 계획을 세운다. ii일의 최고 기온은 TiT_i이다.

상근이는 옷을 총 NN벌 가지고 있으며, 각 옷에는 1번부터 NN번까지 번호가 붙어 있다. 옷 jj(1≤j≤N1 \le j \le N)는 최고 기온이 AjA_j 이상 BjB_j 이하인 날에만 입을 수 있고, 화려한 정도는 CjC_j이다.

같은 옷을 여러 날 입어도 되고, 한 번도 입지 않는 옷이 있어도 된다.

비슷한 옷을 연속으로 입으면 매력이 떨어지므로, 이웃한 날에 입은 옷의 화려함 차이의 합이 최대가 되도록 입으려고 한다. 즉, ii일에 옷 xix_i를 입었다면 ∣Cx1−Cx2∣+∣Cx2−Cx3∣+⋯+∣CxD−1−CxD∣|C_{x_1} - C_{x_2}| + |C_{x_2} - C_{x_3}| + \cdots + |C_{x_{D-1}} - C_{x_D}|를 최대로 하려고 한다.

이 합의 최댓값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 DD와 NN이 주어진다. (2≤D,N≤2002 \le D, N \le 200)

다음 DD개 줄에는 각 날의 최고 기온이 한 줄에 하나씩 주어지며, ii번째 줄은 TiT_i이다. (0≤Ti≤600 \le T_i \le 60)

그다음 NN개 줄에는 옷의 정보가 한 줄에 하나씩 AjA_j, BjB_j, CjC_j 순으로 주어진다. (0≤Aj≤Bj≤600 \le A_j \le B_j \le 60, 0≤Cj≤1000 \le C_j \le 100)

어떤 날이든 입을 수 있는 옷이 적어도 하나는 존재한다.

출력

화려함 차이의 합의 최댓값을 한 줄에 출력한다.

힌트

첫 번째 예제에서 1일에 4번 옷, 2일에 2번 옷, 3일에 3번 옷을 입으면 ∣40−90∣+∣90−60∣=80|40 - 90| + |90 - 60| = 80이 되며, 이 값이 최댓값이다.

예제3

  1. 예제 1

    입력
    3 4
    31
    27
    35
    20 25 30
    23 29 90
    21 35 60
    28 33 40
    
    예상 출력
    80
    
  2. 예제 2

    입력
    5 2
    26
    28
    32
    29
    34
    30 35 0
    25 30 100
    
    예상 출력
    300
    
  3. 예제 3

    입력
    2 2
    0
    0
    0 0 5
    0 0 10
    
    예상 출력
    5