사료 구입

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

요약
일직선 경로 위 상점들에서 K파운드 이상의 사료를 사고, 이동 거리마다 운반량의 제곱에 비례하는 비용을 더해 총비용을 최소화한다.
난이도

어려움10점 중 8점

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

문제

농부 존(FJ)은 마을에 가서 사료 KK(1≤K≤10 0001 \le K \le 10\,000) 파운드를 실어 와야 합니다. 사료 KK 파운드를 실은 채 11 마일을 달리면 K×KK \times K 센트가 들고, 같은 짐으로 DD 마일을 달리면 D×K×KD \times K \times K 센트가 듭니다.

FJ는 사료를 파는 상점 NN(1≤N≤5001 \le N \le 500) 곳 중 어디에서든 살 수 있으며, 상점에는 1…N1 \ldots N 번호가 붙어 있습니다. 모든 상점은 길이가 EE(1≤E≤5001 \le E \le 500) 마일인 X축 구간 위에 있습니다. 상점 ii는 위치 XiX_i(0<Xi<E0 < X_i < E)에 있고, 사료를 파운드당 CiC_i(1≤Ci≤10 000 0001 \le C_i \le 10\,000\,000) 센트에 최대 FiF_i(1≤Fi≤10 0001 \le F_i \le 10\,000) 파운드까지 팝니다. 같은 위치에 상점이 둘 이상 있을 수도 있습니다.

FJ는 위치 00에서 출발해 양의 방향으로만 이동할 수 있으며, 위치 EE에 도착할 때 사료를 최소 KK 파운드 실은 상태여야 합니다. 가는 길에 어떤 상점에든 들러 그 상점의 한도까지 원하는 만큼 살 수 있습니다.

FJ가 사료 KK 파운드를 사서 운반하는 데 드는 최소 총비용은 얼마일까요? 상점 전체의 재고로 필요한 양을 반드시 채울 수 있음이 보장됩니다.

예를 들어 FJ가 22 파운드가 필요하고, 0…50 \ldots 5 범위의 수직선 위 위치 11, 33, 44에 상점이 하나씩 있다고 합시다.

      0   1   2   3   4   5   X
      +---|---+---|---|---+
          1       1   1
          1       2   2

각 상점 아래 첫 번째 숫자 줄은 팔 수 있는 파운드 수이고, 두 번째 줄은 파운드당 가격(센트)입니다. 즉 위치 11의 상점은 11 파운드를 11 센트에, 위치 33과 44의 상점은 각각 11 파운드를 22 센트에 팝니다.

가장 저렴한 방법은 위치 33과 44의 상점에서 각각 11 파운드씩 사는 것입니다. 사료값은 2+2=42 + 2 = 4 센트입니다. 위치 00에서 33까지는 사료를 싣지 않아 운반비가 00입니다. 33에서 44로 갈 때는 11 파운드를 싣고 11 마일을 움직이므로 1×1×1=11 \times 1 \times 1 = 1 센트, 44에서 55로 갈 때는 22 파운드를 싣고 11 마일을 움직이므로 1×2×2=41 \times 2 \times 2 = 4 센트가 듭니다. 총비용은 4+1+4=94 + 1 + 4 = 9 센트입니다.

입력

  • 첫째 줄: 공백으로 구분된 세 정수 KK, EE, NN.
  • 둘째 줄부터 N+1N+1째 줄까지: i+1i+1째 줄에는 공백으로 구분된 세 정수 XiX_i, FiF_i, CiC_i가 주어집니다.

출력

  • 한 줄에 정수 하나: FJ가 사료를 사서 운반하는 최소 총비용.

예제1

  1. 예제 1

    입력
    2 5 3
    3 1 2
    4 1 2
    1 1 1
    
    예상 출력
    9