만드는 중입니다

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

치료 프로젝트

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

요약
감염된 시민이 남지 않도록 치료 프로젝트를 골라 최소 비용을 구합니다. 각 프로젝트는 특정 날짜에 연속된 구간의 시민을 치료합니다.
난이도

어려움10점 중 8점

유형
최단 경로, 그래프, 세그먼트 트리, 정렬
정답자
아직 제출이 없습니다

문제

JOI 왕국에는 1번부터 NN번까지 번호가 매겨진 집 NN채가 일직선으로 늘어서 있다. 각 집에는 시민이 한 명씩 살며, xx번 집에 사는 시민을 시민 xx라고 한다. (1≤x≤N1 \le x \le N)

새로운 바이러스가 나타나 모든 시민이 감염되었다. 이에 대처하기 위해 MM개의 치료 프로젝트가 제안되었다. 프로젝트 ii의 비용은 CiC_i이다. 프로젝트 ii를 수행하면 다음 일이 일어난다.

TiT_i일 저녁에 Li≤x≤RiL_i \le x \le R_i를 만족하는 감염된 시민 xx가 치료된다.

바이러스는 이웃으로 다음과 같이 퍼진다. 어느 날 아침에 시민 xx가 감염되어 있으면, 같은 날 정오에 시민 x−1x-1(x≥2x \ge 2인 경우)과 시민 x+1x+1(x≤N−1x \le N-1인 경우)이 감염된다. 치료받은 시민도 다시 감염될 수 있다.

선택한 프로젝트를 모두 수행한 뒤 어떤 시민도 감염되어 있지 않도록 프로젝트를 고른다. 같은 날 여러 프로젝트를 수행해도 된다.

이 조건을 만족시킬 수 있는지 판단하고, 만족시킬 수 있다면 총 비용의 최솟값을 구한다.

입력

첫 줄에 NN과 MM이 주어진다. 다음 MM개의 줄에는 각각 TiT_i, LiL_i, RiR_i, CiC_i가 주어진다.

N M
T1 L1 R1 C1
.
.
.
TM LM RM CM

출력

한 줄에 출력한다. 조건을 만족시킬 수 없으면 -1을 출력하고, 그렇지 않으면 총 비용의 최솟값을 출력한다.

제한

  • 1≤N≤10000000001 \le N \le 1000000000
  • 1≤M≤1000001 \le M \le 100000
  • 1≤Ti≤10000000001 \le T_i \le 1000000000 (1≤i≤M1 \le i \le M)
  • 1≤Li≤Ri≤N1 \le L_i \le R_i \le N (1≤i≤M1 \le i \le M)
  • 1≤Ci≤10000000001 \le C_i \le 1000000000 (1≤i≤M1 \le i \le M)

예제3

  1. 예제 1

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

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

    입력
    10 5
    1 5 10 4
    1 1 6 5
    1 4 8 3
    1 6 10 3
    1 1 3 1
    
    예상 출력
    7