Problem1750--位运算

1750: 位运算

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 128 MB

Submit

Description




第一列 第二列
第三列
第一行
(1,1) (1,2) (1,3)
第二行
(2,1) (2,2) (2,3)
第三行
(3,1) (3,2) (3,3)
这是一个表格,对于表格中的任何一个位置都可以用一个数对 (x,y) 表示
即表示 从上往下 第 x 行的 从左往右 第 y 个数。

cxs有一个表格,表格中的每一个数要么是 1 ,要么是 0 ,就像这样:

第一列 第二
第三列
一行
1 0 1
第二行
1 0 0
第三行
0 1 1

对于这个表格,用上面的数对来表示,位置(1,1)的数是 1;位置(1,2)的数是 0;位置(1,3)的数是 1。 

针对这个表格,他出了一道题来考考你。
cxs认为这个表格中有 m 子表格 是他想要询问的表格,所以cxs有 m 个询问。
每一个询问,他会给出五个参数:w,x1,y1,x2,y2,
x1,y1 表示这次询问的子表格的左上角的位置是(x1,y1)
x2,y2 表示这的子表格的右下角的位置是(x2,y2)
很显然,这样可以表示一个唯一的子表格。
而 w 表示运算的类型
w=0 时 运算的类型是 异或 (xor 或 ^)
w=1 时 运算类型是 或(or 或 |)
w=2 时 运算的类型是 与(and 或 &) 

cxs要求你写程序解决:对于每个询问
这个询问的子表格中的所有数通过 w 运算的结果



Input

第一行两个数,分别是 n,m,n表示那个表格的大小是 n*n,m表示询问的个数。
接下来 n 行(即第 2 行 至 第 n+1 行),每行 n 个数。整个输入文件中的第 i + 1 行的第 j 个数表示这个表格的第 i 行第 j 个数的值 ( 0 或 1 )
再接下来 m 行 (即第 n+2 行 至 第 n+m+1 行)每行五个整数,分别为题目描述中的 w,x1,y1,x2,y2。

Output

针对每一次询问,你的程序必须做出一个回答,表示这个子表格中的所有数通过 w 运算的结果

Sample Input Copy

3 3
1 0 1
0 1 1
1 0 1
0 1 1 3 3
2 1 1 2 3
1 2 1 3 3

Sample Output Copy

0
0
1

HINT

数据的范围:
对于 20% 的数据 ,1<=n<=25,1<=m<=10;
对于另外 40% 的数据,1<=n<=250,1<=m<=100;
剩余的数据,1<=n<=2500,1<=m<=10000;

Source/Category