만드는 중입니다

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

퍼펙트 사분면

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

요약
각 집합 P_i의 점이 경계 위에 없고 왼쪽 아래 사분면 안에 정확히 c_i개 들어가는 격자점 (x, y)의 개수를 셉니다.
난이도

어려움10점 중 8점

유형
슬라이딩 윈도우, 해시맵, 정렬, 세그먼트 트리
정답자
아직 제출이 없습니다

문제

평면 위의 임의의 점 (x,y)(x, y)를 생각하자. 이 점에서 반직선 두 개를 그린다. 하나는 수직으로 아래쪽, 다른 하나는 수평으로 왼쪽 방향이다. 수평 반직선 아래에 있고 수직 반직선 왼쪽에 있는 (무한한) 영역을 사분면이라 하며 Q(x,y)Q(x, y)로 나타낸다. Q(x,y)Q(x, y)의 두 반직선이 경계를 이루고, 내부에는 경계가 포함되지 않는다.

LL을 자연수라 하고, x,y∈{0,1,2,…,L}x, y \in \{0,1,2, \dots , L\}을 만족하는 평면 위의 점 (x,y)(x, y)들의 집합을 SS라 하자. 따라서 SS는 (L+1)2(L + 1)^2개의 점으로 이루어진다. 어떤 k≥1k \ge 1에 대해, 유한 부분집합 P1,P2,…,Pk⊆SP_1, P_2, \dots , P_k \subseteq S와 음이 아닌 정수 c1,c2,…,ckc_1, c_2, \dots , c_k가 주어진다. 모든 i=1,2,…,ki = 1, 2, \dots , k에 대해 다음 조건이 성립하면 사분면 QQ는 (c1,c2,…,ck)(c_1, c_2, \dots , c_k)-퍼펙트이다.

PiP_i의 어떤 점도 QQ의 경계 위에 있지 않고, ∣Pi∩Q∣=ci|P_i \cap Q| = c_i이다.

SS의 점 (x,y)(x, y) 중 Q(x,y)Q(x, y)가 (c1,c2,…,ck)(c_1, c_2, \dots , c_k)-퍼펙트인 점의 개수를 구하는 프로그램을 작성하라.

입력

입력은 표준 입력에서 읽는다. 첫 줄에는 두 정수 LL과 kk가 주어진다 (1≤L≤1091 \le L \le 10^9, 1≤k≤100 0001 \le k \le 100\,000). 둘째 줄에는 kk개의 음이 아닌 정수 c1,c2,…,ckc_1, c_2, \dots , c_k가 주어진다 (0≤c1,c2,…,ck≤1 000 0000 \le c_1, c_2, \dots , c_k \le 1\,000\,000). 셋째 줄에는 입력 점의 총개수 NN이 주어진다 (1≤N≤1 000 0001 \le N \le 1\,000\,000). 이는 N=∣P1∣+∣P2∣+⋯+∣Pk∣N = |P_1| + |P_2| + \cdots + |P_k|를 뜻한다. 이어지는 NN개의 줄마다 세 정수 xx, yy, ii가 주어지며 (0≤x,y≤L0 \le x, y \le L, 1≤i≤k1 \le i \le k), 점 (x,y)(x, y)가 PiP_i의 원소임을 뜻한다. 축에 평행한 직선 중 NN개의 입력 점 가운데 두 점을 지나는 직선은 없다고 가정해도 된다.

출력

표준 출력에 한 줄을 출력한다. 이 줄에는 Q(x,y)Q(x, y)가 (c1,c2,…,ck)(c_1, c_2, \dots , c_k)-퍼펙트가 되는 (x,y)∈S(x, y) \in S의 개수를 정수 하나로 적는다.

예제3

  1. 예제 1

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

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

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