QOJ.ac

QOJ

Time Limit: 15 s Memory Limit: 1024 MB Total points: 100

#1352. 가드닝 게임

Statistics

Whiteking은 지역 꾸미기 게임을 하려고 합니다. 그가 꾸미고자 하는 영역은 $N \times N$ 격자 형태이며, 단위 격자는 $1 \times 1$ 정사각형 타일로 표현됩니다. 왼쪽 상단 타일의 좌표는 $(1, 1)$이고, 오른쪽 하단 타일의 좌표는 $(N, N)$입니다. 따라서 타일의 좌표는 해당 타일의 오른쪽 하단 모서리 좌표를 의미합니다. 이를 통해 $(x, y)$에 위치한 타일은 $[x - 1, x] \times [y - 1, y]$에 해당하는 정사각형 영역을 차지함을 알 수 있습니다. 각 타일은 고유한 아름다움 값을 가지며, 처음에 모든 타일의 아름다움 값은 0입니다.

이 지역 꾸미기 게임은 플레이어가 다음 세 가지 행동을 사용하여 점수를 얻는 게임입니다.

  • 수평 또는 수직으로 직선을 그어 격자를 서로 다른 구역으로 나눕니다. 처음에 격자에는 $N \times N$ 크기의 영역이 하나만 존재합니다. 선은 양방향으로 무한히 뻗어 나갑니다. 예를 들어, 수평선 하나와 수직선 하나를 그으면 초기 영역은 총 네 개의 영역으로 나뉩니다.
  • 타일 하나를 선택하여 그 타일이 속한 영역을 꾸밉니다. 그 결과, 꾸며진 영역 내 모든 타일의 아름다움 값이 주어진 값만큼 증가합니다.
  • 격자 위의 직사각형 하나를 선택하고, 그 안에 있는 가장 아름다운 타일의 아름다움 값만큼 점수를 얻습니다.

Whiteking은 세 번째 유형의 각 행동에 대해 자신이 몇 점을 얻게 될지 미리 알고 싶어 합니다. 그래서 그는 자신이 수행할 행동의 순서 목록을 보여줄 것입니다. 행동은 다음 형식으로 주어집니다.

  • “1 a b”: $a$가 0이면 직선 $x = b$를 긋고, $a$가 1이면 직선 $y = b$를 긋습니다.
  • “2 a b X”: $(a, b)$에 위치한 타일을 선택하여 그 타일이 속한 영역을 꾸미고, 그 영역 내 모든 타일의 아름다움 값을 $X$만큼 증가시킵니다.
  • “3 a b c d”: $(a, b)$를 왼쪽 상단 타일로, $(c, d)$를 오른쪽 하단 타일로 하는 직사각형을 선택하고, 그 안에 있는 가장 아름다운 타일의 아름다움 값만큼 점수를 얻습니다.

Whiteking이 세 번째 유형의 모든 행동에 대해 얻게 될 점수를 구할 수 있도록 도와주세요.

입력

첫 번째 줄에는 두 정수 $N$과 $Q$ ($1 \le N \le 10^5$, $1 \le Q \le 3 \cdot 10^5$)가 주어집니다.

다음 $Q$개의 줄 각각은 문제 설명에 제시된 형식의 행동을 나타냅니다.

1번 유형의 행동에 대해, $0 \le a \le 1$이고 $1 \le b \le N - 1$입니다. 2번 유형의 행동에 대해, $1 \le a, b \le N$이고 $-10^9 \le X \le 10^9$입니다. 3번 유형의 행동에 대해, $1 \le a \le c \le N$이고 $1 \le b \le d \le N$입니다.

2번 유형의 행동은 최대 25,000개이며, 3번 유형의 행동은 최소 1개 이상 존재합니다.

출력

3번 유형의 모든 행동에 대해, Whiteking이 해당 행동으로 얻게 될 점수를 출력하십시오.

예제

입력 1

3 7
3 1 1 3 3
2 1 3 -3
3 1 1 3 3
1 0 1
2 1 1 4
3 2 2 3 3
3 1 1 3 3

출력 1

0
-3
-3
1

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.