Codeforces Round 198 (Div. 1) |
---|
Закончено |
Яхубу не нравятся лирические отступления, так что он прямо скажет, что от Ваc требуется в данной задаче.
Дана матрица a, состоящая из n строк и n столбцов. Изначально все элементы в матрице равны 0. Как строки, так и столбцы матрицы 1-индексированные, то есть, строки нумеруются числами 1, 2, ..., n, и столбцы нумеруются числами 1, 2, ..., n. Обозначим элемент матрицы, который стоит на пересечении i-ой строки и j-ого столбца, как ai, j.
Будем называть подматрицей (x0, y0, x1, y1) элементы матрицы ai, j, такие, что выполняются два неравенства: x0 ≤ i ≤ x1, y0 ≤ j ≤ y1.
Напишите программу, которая выполняет операции двух следующих типов:
Первая строка содержит два целых числа: n (1 ≤ n ≤ 1000) и m (1 ≤ m ≤ 105). Целое число m обозначает количество операций, которые нужно выполнить. Каждая из m следующих строк содержит пять или шесть целых чисел, в зависимости от типа текущей операции.
Если i-ая операция из входных данных — это query (запрос), первое число i-ой строки будет равно 1. За единицей будут идти четыре целых числа x0, y0, x1, y1. Если же i-ая операция — это операция update, первое число в i-ой строке будет равно 2. За двойкой будут идти пять целых чисел x0, y0, x1, y1, v.
Гарантируется, что для каждой операции update выполняется следующее неравенство: 0 ≤ v < 262. Гарантируется, что для каждой операции выполняются следующие неравенства: 1 ≤ x0 ≤ x1 ≤ n, 1 ≤ y0 ≤ y1 ≤ n.
Для каждой операции query выведите результат в отдельной строке.
3 5
2 1 1 2 2 1
2 1 3 2 3 2
2 3 1 3 3 3
1 2 2 3 3
1 2 2 3 2
3
2
После первых 3-x операций, матрица будет выглядеть следующим образом:
1 1 2
1 1 2
3 3 3
Чтобы выполнить четвертую операцию нужно посчитать 1 xor 2 xor 3 xor 3 = 3.
Чтобы выполнить пятую операцию нужно посчитать 1 xor 3 = 2.
Название |
---|