만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

에너지를 유지하라

시간 제한3초메모리 제한256 MB

요약
각 레벨 상점에서 에너지 팩을 사서 모든 레벨을 순서대로 가장 적은 현금으로 통과합니다.
난이도

보통10점 중 7점

유형
동적 계획법, 세그먼트 트리, 누적 합, 이분 탐색
정답자
아직 제출이 없습니다

문제

게임 회사가 새 게임기와 함께 내놓는 게임 Adventures of Captain Mikado를 만들고 있다. 이 게임에는 레벨이 NN개 있고 11번부터 NN번까지 번호가 붙어 있다. ii번 레벨을 깨려면 에너지가 정확히 EiE_i만큼 든다. 즉 ii번 레벨을 시작하는 시점의 에너지가 EiE_i 이상이어야 하고, 레벨을 깨고 나면 에너지가 정확히 EiE_i만큼 줄어든다. 게임을 이기려면 11번 레벨부터 NN번 레벨까지 번호 순서대로 모두 깨야 하고, 이미 깬 레벨로 되돌아갈 수 없다.

플레이어는 에너지 00으로 시작한다. 에너지는 레벨 곳곳에 흩어져 있는 상점 MM개에서 에너지 팩을 사서 얻는다. 상점마다 강도가 SS이고 가격이 CC인 에너지 팩을 한 종류 판다. 플레이어는 지금 있는 레벨의 상점에서만, 그 레벨을 시작하기 전에 에너지 팩을 살 수 있다. 강도가 SS인 팩을 사면 직전 에너지가 얼마였든 에너지가 곧바로 SS가 된다.

레벨 NN개를 모두 깨는 데 드는 게임 내 화폐의 최솟값을 구하라.

입력

첫째 줄에 레벨 수 NN과 상점 수 MM이 주어진다 (1≤N,M≤1051 \le N, M \le 10^5).

둘째 줄에 정수 NN개 E1,E2,…,ENE_1, E_2, \dots, E_N이 주어진다. EiE_i는 ii번 레벨을 깨는 데 드는 에너지이다 (1≤Ei≤1041 \le E_i \le 10^4).

다음 MM개 줄에는 상점 하나를 나타내는 정수 LL, SS, CC가 주어진다. LL은 상점이 있는 레벨 번호, SS와 CC는 그 상점이 파는 에너지 팩의 강도와 가격이다 (1≤L≤N1 \le L \le N, 1≤S≤1091 \le S \le 10^9, 1≤C≤1041 \le C \le 10^4).

출력

레벨 NN개를 모두 깨는 데 필요한 게임 내 화폐의 최솟값을 한 줄에 출력한다. 모든 레벨을 깨는 것이 불가능하면 -1을 출력한다.

예제2

  1. 예제 1

    입력
    5 4
    1 2 3 4 5
    1 6 5
    2 14 10
    5 5 4
    3 7 5
    
    예상 출력
    14
    
  2. 예제 2

    입력
    3 4
    14 11 2015
    1 14 23
    2 11 9
    3 1987 1
    1 2039 33
    
    예상 출력
    -1