만드는 중입니다

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

로봇

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

요약
최대 10^9 x 10^9 격자에서 최대 10^5개의 직사각형 장애물을 피해 대각선으로 이동할 때 로봇이 방문할 수 있는 칸의 수를 구합니다.
난이도

어려움10점 중 8점

유형
정렬, 슬라이딩 윈도우, 구간, 구현
정답자
아직 제출이 없습니다

문제

로봇이 가로 nn열, 세로 mm행으로 이루어진 직사각형 격자판 위를 이동한다. 로봇은 첫 번째 행의 아무 칸에서나 출발할 수 있다. 그 뒤 이동을 0번 이상 할 수 있다. 로봇이 xx열 yy행에 있을 때, 한 번의 이동으로 (x+1,y+1)(x+1, y+1) 칸 또는 (x−1,y+1)(x-1, y+1) 칸으로 갈 수 있다. 로봇은 격자판 밖으로 나갈 수 없다.

격자판에는 변이 격자의 변과 평행한 직사각형 장애물이 있다. 로봇은 장애물이 덮고 있는 칸에 들어갈 수 없다. 장애물끼리는 겹치지 않지만 맞닿을 수 있다.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다. 각 테스트 케이스의 첫 줄에는 열의 수 nn과 행의 수 mm이 주어진다 (1≤n,m≤1091 \le n, m \le 10^9). 다음 줄에는 장애물의 개수 kk가 주어진다 (1≤k≤1051 \le k \le 10^5). 이어서 kk개의 줄에 장애물의 서로 반대쪽 모서리 좌표 x1x_1, y1y_1, x2x_2, y2y_2가 주어진다 (1≤x1≤x2≤n1 \le x_1 \le x_2 \le n, 2≤y1≤y2≤m2 \le y_1 \le y_2 \le m). 입력 전체의 장애물 개수 합은 10510^5을 넘지 않는다.

출력

각 테스트 케이스마다 로봇이 방문할 수 있는 칸의 개수를 한 줄에 출력한다.

예제1

  1. 예제 1

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