594. 山峰

提交0 通过0
通过率0%
时间限制1000ms
内存限制256MiB
    ID: 594 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: 入门 上传者: 标签>程序的基本概念二维及多维数组编程题c++基础语法二维数组二维

题目描述

题目描述

珅泽山可以被分为 nn 行 mm 列的土地,第 ii 行第 jj 列的土地初始海拔为 ai,ja_{i,j}。行号和列号均从 11 开始编号。

在漫长的岁月中,一共发生了 TT 次地理变迁。每次地理变迁,两块土地的海拔会发生交换。

如果有一块土地,比上下左右直接相邻的土地海拔都高,我们称其为一个山峰。

Berland 王国的首领小泽想要知道,在所有地理变迁完成后,王国一共有多少山峰,它们的坐标分别为多少。

例如:n=m=3n = m = 3,海拔高度如下所示

1 2 3

1 4 2

1 1 2

其中,(1,3)(1, 3),(2,2)(2, 2) 是山峰。

输入格式

输入的第一行为两个整数 n,mn, m,分别代表行数与列数。

接下来 nn 行,每行 mm 个整数,第 ii 行第 jj 个整数代表 ai,ja_{i,j}。

接下来一行一个整数 TT。

接下来 TT 行,每行四个整数 x1,y1,x2,y2x_1, y_1, x_2, y_2,代表 x1x_1 行 y1y_1 列的土地与 x2x_2 行 y2y_2 列的土地发生了地理变迁。

输出格式

输出的第一行为一个整数,代表地理变迁后山峰的数量 kk。

接下来 kk 行,每行两个整数 x,yx, y,代表一座山峰在第 xx 行第 yy 列。

输出山峰的坐标按行从小到大输出,如果行一样按照列从小到大输出。

3 3
1 2 3
1 4 2
1 1 2
0
2
1 3
2 2
3 2
45 4
80 46
15 4
2
1 2 1 1
3 1 1 1
1
2 1
2 6
7348 7825 6670 1364 9221 6039
5297 5960 9811 3058 6049 6049
2
1 4 2 5
2 2 1 5
2
2 3
2 6

数据规模与约定

对于 20%20\% 的数据,n=1n = 1;

对于另外 20%20\% 的数据,m=1m = 1;

对于另外 20%20\% 的数据,n=mn = m;

对于另外 20%20\% 的数据,T=0T = 0;

对于 100%100\% 的数据,1≤n,m≤10001 \le n, m \le 1000,0≤T≤1050 \le T \le 10^5,1≤ai,j≤1061 \le a_{i,j} \le 10^6,1≤x1,x2≤n1 \le x_1, x_2 \le n,1≤y1,y2≤m1 \le y_1, y_2 \le m。