#59713. Excel 表格
Excel 表格
暂无测试数据。
背景
Excel 表格内很多函数,蒜头君想要实现这些函数。
题目描述
现在有一个 $n$ 行,$m$ 列的 Excel 表格($n\times m$ 的二维数组),表格内最初有一些整数,第 $i$ 行,第 $j$ 列的数字为 $a[i][j]$,其中 $1\leq i \leq n,1\leq j \leq m$。
现在有 $q$ 次操作,操作共有五种,每种操作有一个操作编号 $op$,具体为:
- 若为操作 $1$,则 $op = 1$,操作是将第 $x$ 行,第 $y$ 列的数加上整数 $z$;
- 若为操作 $2$,则 $op = 2$,操作是求第 $x$ 行,$y_1 \sim y_2$ 列上所有数字的和;
- 若为操作 $3$,则 $op = 3$,操作是求第 $y$ 列,$x_1 \sim x_2$ 行上所有数字的和;
- 若为操作 $4$,则 $op = 4$,操作是求第 $x$ 行,$y_1 \sim y_2$ 列上所有数字的最大值;
- 若为操作 $5$,则 $op = 5$,操作是求第 $y$ 列,$x_1 \sim x_2$ 行上所有数字的最小值;
输入格式
第一行,输入三个以空格隔开的正整数:$n,m,q(1\leq n,m,q \leq 1000)$,表示 Excel 表格的大小和操作的次数。
接下来 $n$ 行,每行输入 $m$ 个以空格隔开的整数 $a[i][j](0 \leq |a[i][j]| \leq 10^6)$,表示最初 Excel 表格每个位置的数字。
接下来 $q$ 行,每行先输入一个正整数 $op(1\leq op \leq 5)$,表示操作的编号,若:
- $op = 1$,表示操作 $1$,接下来输入三个以空格隔开的整数 $x,y,z(1\leq x \leq n, 1\leq y \leq m,0 \leq |z| \leq 10^6)$,含义如上;
- $op = 2$,表示操作 $2$,接下来输入三个以空格隔开的整数 $x,y_1,y_2(1\leq x \leq n,1\leq y_1 \leq y_2 \leq m)$,含义如上;
- $op = 3$,表示操作 $3$,接下来输入三个以空格隔开的整数 $y,x_1,x_2(1\leq y \leq m, 1\leq x_1 \leq x_2 \leq n)$,含义如上;
- $op = 4$,表示操作 $4$,接下来输入三个以空格隔开的整数 $x,y_1,y_2(1\leq x \leq n,1\leq y_1 \leq y_2 \leq m)$,含义如上;
- $op = 5$,表示操作 $5$,接下来输入三个以空格隔开的整数 $y,x_1,x_2(1\leq y \leq m, 1\leq x_1 \leq x_2 \leq n)$,含义如上;
输出格式
输出有若干行,每行一个整数。表示根据操作的顺序,依次输出操作 $2\sim 5$ 的结果。
3 3 5
1 2 3
-3 2 -5
9 -6 -7
2 2 1 3
1 2 1 -8
3 1 1 2
5 3 2 2
4 2 1 3
-6
-10
-5
2
4 5 6
1 2 -3 4 -7
-5 4 -6 2 8
10 -42 -3 8 100
23 8 30 -21 -32
2 2 2 4
3 3 1 4
1 3 3 6
3 3 1 4
4 3 2 3
5 4 1 4
0
18
24
3
-21