Олимпиадный тренинг

Задача . Farmer John's Cheese Block


Задача

Темы:

У Фермера Джона есть блок сыра в форме куба. Он лежит в трёхмерном пространстве от точки \((0,0,0)\) до точки \((N, N, N)\) (\(2 \leq N \leq 1000\)). ФД выполняет серию из \(Q\) (\(1 \leq Q \leq 2 \cdot 10^5\)) операций над своим блоком сыра.

В каждой операции ФД вырезает блок размером \(1\) * \(1\) * \(1\) из сыра от целых координат \((x, y, z)\) до \((x+1, y+1, z+1)\), где \(0\le x,y,z<N\). Гарантируется, сыр есть в этом месте. Поскольку ФД играет в Moocraft гравитация не вызывает падение блоков сыра при вырезании.

После каждой операции выведите количество различных способов, которыми ФД может вставить блок \(1\) * \(1\) * \(N\) так, что ни одна часть блока не перекрывается с оставшимся сыром. Каждая вершина блока должна иметь целочисленные координаты в интервале \([0,N]\) по всем трём осям. ФД может вращать блок как он хочет.

ФОРМАТ ВВОДА (с клавиатуры / stdin):

Первая строка содержит \(N\) и \(Q\).

Последующие \(Q\) строк содержат \(x\), \(y\), \(z\), координаты вырезания.

ФОРМАТ ВЫВОДА (на экран / stdout):

После каждой операции выведите целое число - количество способов.


Примеры
Входные данныеВыходные данные
1 2 5
0 0 0
1 1 1
0 1 0
1 0 0
1 1 0
0
0
1
2
5

time 500 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя