Two Histograms

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

요약
두 히스토그램의 높이를 정해 N개의 서로 겹치지 않는 K x 1 구간 양 끝 칸의 색이 다르게 만들고, 각 구간에서 얻는 점수의 합을 최대로 만든다. 이때 심사를 통과하는 그림이 없으면 -1을 출력한다.
난이도

어려움10점 중 8점

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

문제

당신에게 106×10610^6\times 10^6 크기의 정사각형 모양의 격자판 세 개가 주어진다. 각 칸은 xx좌표와 yy좌표로 번호가 매겨져 있다. xx좌표는 맨 왼쪽에서부터 맨 오른쪽까지 11부터 10610^6으로 매겨져 있고, yy좌표는 맨 아래에서부터 맨 위까지 11에서 10610^6으로 매겨져 있다. 당신은 각 칸을 검은색 혹은 흰색으로 칠해야 한다.

세 격자의 격자칸을 색칠하는 예시.

첫 번째 격자판은 아래에서부터 올라오는 히스토그램의 형태를 띄어야 한다. 즉, 어떤 격자칸이 검은색으로 칠해져 있다면, 그 아래의 칸도 검은색으로 칠해져 있어야 한다.

두 번째 격자판은 왼쪽에서부터 오른쪽으로 진행하는 히스토그램의 형태를 띄어야 한다. 즉, 어떤 격자칸이 검은색으로 칠해져 있다면, 그 왼쪽 칸도 검은색으로 칠해져 있어야 한다.

세 번째 격자판은 앞의 두 격자판을 이용해 색칠한다. 어떤 칸 (x,y)(x,y)가 첫 두 격자판에서 모두 검은색으로 색칠되어 있다면, 세 번째 격자판의 칸 (x,y)(x,y) 역시 검은색으로 색칠한다. 그렇지 않다면, 해당 칸을 흰색으로 색칠한다. 이 세 번째 격자판이 최종 그림이 된다.

당신이 그린 그림을 NN명이 심사위원에게 심사할 예정이다. 각 심사위원은 그림 내의 특정한 K×1K\times 1 직사각형 영역을 심사에 이용한다. ii번째 심사위원이 이용하는 직사각형 영역은 \[x_i,x_i+K−1]×\[y_i,y_i]\[x\_i,x\_i+K-1]\times\[y\_i , y\_i]이다. 각 심사위원들이 심사에 이용하는 직사각형 영역은 겹치지 않는다.

ii번째 심사위원은 칸 (x_i,y_i)(x\_i,y\_i)와 칸 (x_i+K−1,y_i)(x\_i+K-1,y\_i)가 같은 색으로 칠해진 경우 불합격으로 판정한다. 두 칸의 색이 다른 경우에는 합격으로 판정하고, 칸 (x_i,y_i)(x\_i,y\_i)가 흰색으로 칠해진 경우에 a_ia\_i점을, 검은색으로 칠해진 경우에 b_ib\_i점을 준다.

심사를 통과하기 위해서는 모든 심사위원에게 합격 판정을 받아야 한다. 이때 그림의 점수는 모든 심사위원들에게 받은 점수의 합이 된다. 심사를 통과하는 가능한 모든 그림에 대해서 받을 수 있는 점수의 최댓값을 구해 보자.

입력

첫 번째 줄에는 두 정수 NN과 KK가 공백으로 구분되어 주어진다.

다음 NN개의 줄 중 ii번째 줄에는 네 정수 x_ix\_i, y_iy\_i, a_ia\_i, b_ib\_i가 공백으로 구분되어 주어진다.

출력

심사를 통과하는 그림이 없다면, −1-1을 출력한다.

심사를 통과하는 그림이 있다면, 가능한 그림의 최대 점수를 출력한다.

제한

  • 1≤N≤3×1051\leq N\leq 3\times 10^5
  • 2≤K≤1062\leq K\leq 10^6
  • 1≤x_i≤106−K+11\leq x\_i\leq 10^6-K+1 (1≤i≤N1\leq i\leq N)
  • 1≤y_i≤1061\leq y\_i\leq 10^6 (1≤i≤N1\leq i\leq N)
  • 1≤a_i,b_i≤1091\leq a\_i,b\_i\leq 10^9 (1≤i≤N1\leq i\leq N)
  • NN개의 직사각형 영역 \[x_i,x_i+K−1]×\[y_i,y_i]\[x\_i,x\_i+K-1]\times\[y\_i , y\_i] (1≤i≤N1\leq i\leq N)는 서로 겹치지 않는다.

힌트

\[x_l,x_r]×\[y_l,y_r]\[x\_l,x\_r]\times\[y\_l , y\_r] 직사각형 영역은 x_l≤x≤x_rx\_l\le x\le x\_r이고 y_l≤y≤y_ry\_l\le y\le y\_r인 영역을 의미한다.

예제4

  1. 예제 1

    입력
    5 2
    1 1 1 2
    3 1 1 10
    5 1 5 6
    2 2 3 2
    4 2 5 9
    
    예상 출력
    26
    
  2. 예제 2

    입력
    6 3
    1 1 2 4
    5 1 4 9
    2 3 7 4
    5 3 3 1
    1 5 5 7
    4 5 6 4
    
    예상 출력
    36
    
  3. 예제 3

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

    입력
    10 3
    4 2 5 2
    10 2 8 10
    1 2 1 4
    12 1 8 6
    6 3 7 10
    8 1 1 9
    11 3 5 5
    7 2 10 5
    3 3 6 4
    4 1 9 4
    
    예상 출력
    72