#5374. 数据核心(2023厦门小学生c++竞赛第四题)
数据核心(2023厦门小学生c++竞赛第四题)
数据核心(2023厦门小学生c++竞赛第四题)
【问题描述】
Sora 有一块神奇的数据核心,这块数据核心里有 n×m 个数据块,这些数据 块组成了一个 n×m 的矩阵。 在数据核心中,每个数据块都有一个强度 ,代表这个数据块存在数据核 心中时会提供多少的运算力。但是随着时间的推移,数据核心中有一些数据块 出现了硬件老化,有些数据块的强度是一个负数,继续保留过多的老化数据块 会影响数据核心的使用效率,所以 Sora 决定从原本的数据核心的矩阵中,先确 定一个数据块作为新数据核心的左上角,其位置为(x,y),向右下方切割出一 块数据核心(子矩阵),以保证其使用效率。 但是 Sora 是一个有着天马行空想象力的科学家,她想知道在确定了新的数 据核心左上角的数据块的情况下,其位置为(x,y),新的数据核心(子矩阵) 能够获得的最大运算力是多少。 当然她的问题很多,有 Q 次询问,每次询问都会给出一个位置(x,y),你需 要算出以这个位置为左上角的新数据核心对应的最大运算力。
【输入格式】
从文件 data.in 中读入数据。 第一行两个整数 n,m,表示原始数据核心的大小。 接下来 n 行,每行 m 个整数,对应的是每个数据块的强度 。 第 n+2 行一个整数 Q,表示询问次数。 接下来 Q 行,每行两个整数 x,y,表示新数据核心的左上角数据块在原数 据核心中位于第 x 行第 y 列。 【输出格式】 输出到文件 data.out 中。 输出 Q 行,每行一个整数,表示对应询问的最大运算力。
【输入数据样例】
5 5
1 -1 1 -1 1
2 2 2 -1 2
1 1 2 -1 -1
-1 -1 2 2 1
1 1 1 1 -1
6
1 1
2 2
3 3
2 4
5 1
5 5
【输出数据样例】
16
12
7
2
4
-1
【样例解释】
第一个询问对应的新数据核心是(1,1)到(5,5)。
第二个询问对应的新数据核心是(2,2)到(5,5)。
第三个询问对应的新数据核心是(3,3)到(5,4)。
第四个询问对应的新数据核心是(5,1)到(5,4)。
第五个询问对应的新数据核心是(5,5)到(5,5)。
【数据范围】
对于 20%的数据,
对于 50%的数据,
对于 80%的数据,
对于 100%的数据,