Farmer John's Cheese Block


답안 제출

Points: 10
시간 제한: 2.0s
메모리 제한: 1G

문제 유형

농부 존은 정육면체 모양의 치즈 덩어리를 가지고 있다. 이 치즈는 3차원 좌표 공간에서 \((0,0,0)\)부터 \((N,N,N)\)까지 놓여 있다. (\(2\le N\le 1000\)) 농부 존은 치즈 덩어리에 \(Q\)번의 갱신 연산을 수행한다. (\(1\le Q\le 2\cdot 10^5\))

각 갱신 연산에서 농부 존은 정수 좌표 \((x,y,z)\)부터 \((x+1,y+1,z+1)\)까지 놓인 \(1\times 1\times 1\) 크기의 치즈 조각을 파낸다. 이때 \(0\le x,y,z<N\)이다. 농부 존이 파내려는 위치에는 항상 \(1\times 1\times 1\) 크기의 치즈 조각이 남아 있음이 보장된다. 농부 존은 무크래프트를 하고 있으므로, 아래쪽 치즈를 파내더라도 중력 때문에 치즈의 일부가 떨어지지는 않는다.

각 갱신 연산이 끝난 뒤, 남아 있는 치즈와 어떤 부분도 겹치지 않도록 \(1\times 1\times N\) 크기의 벽돌을 치즈 덩어리 안에 넣는 서로 다른 배치의 수를 출력하여라. 벽돌의 모든 꼭짓점은 세 좌표축 모두에서 \([0,N]\) 범위의 정수 좌표를 가져야 한다. 농부 존은 벽돌을 원하는 방향으로 회전할 수 있다.

입력

첫째 줄에 \(N\)과 \(Q\)가 공백으로 구분되어 주어진다.

다음 \(Q\)개의 줄에 파낼 치즈 조각의 좌표 \(x\), \(y\), \(z\)가 공백으로 구분되어 주어진다.

출력

각 갱신 연산이 끝난 뒤, 가능한 벽돌 배치의 수를 나타내는 정수 하나를 출력한다.

예제 입력

2 5
0 0 0
1 1 1
0 1 0
1 0 0
1 1 0

예제 출력

0
0
1
2
5

처음 세 번의 갱신 연산이 끝난 뒤, \([0,1]\times[0,2]\times[0,1]\) 영역을 차지하는 \(1\times 2\times 1\) 크기의 벽돌은 남아 있는 치즈와 겹치지 않는다. 따라서 이 배치는 답에 포함된다.

서브태스크

테스트 케이스 추가 제한
2–4 \(N\le 10\), \(Q\le 1000\)
5–7 \(N\le 100\), \(Q\le 1000\)
8–16 추가 제한 없음

출처

USACO 2024 December Contest, Bronze, Problem 2. Farmer John's Cheese Block


코멘트

현재 작성된 코멘트가 없습니다.