你要在一个长方形大厅里举办国际编程比赛,该大厅共有
大厅中一个座位集合
。 。 正好是所有满足 和 的座位 的集合。
如果一个长方形座位集合包含
在准备好座位表后,你会收到一些交换两个参赛者座位的请求。具体来说,有
实现细节
你应该实现下列过程和函数:
give_initial_chart(int H, int W, int[] R, int[] C)
H
,W
:行数和列数R
,C
:两个长度为 的数组,代表初始的座位表- 这个过程只被调用一次,而且是在
swap_seats
的任何调用之前。
int swap_seats(int a, int b)
- 该函数用来处理一次交换座位的请求
a
,b
:需要交换座位的参赛者- 该函数被调用
次 - 该函数应返回交换座位后座位表的美妙度
例子
令
评测程序先调用 give_initial_chart(2, 3, [0, 1, 1, 0, 0, 1], [0, 0, 1, 1, 2, 2])
。
最初,座位表如下:
假设评测程序调用 swap_seats(0, 5)
。在这个编号为
对应参赛者集合 swap_seats
应该返回
假设评测程序再次调用 swap_seats(0, 5)
。在这个编号为 swap_seats
应该返回
在样例数据下载中的文件ex_seats1.in
和ex_seats1.out
对应于上述例子。此外,样例数据包中还有一些其他的输入输出例子。
限制条件
( ) ( ) ( )- 对于
swap_seats
的所有调用, - 对于
swap_seats
的所有调用, - 对于
swap_seats
的所有调用,
子任务
- (5分)
, - (6分)
, - (20分)
, , - (6分) 对于
swap_seats
的所有调用, , - (33分)
- (30分)无附加限制条件
评测程序示例
评测程序示例按照以下格式读入输入
- 第
行: - 第
行( ) : - 第
行( ):
这里 swap_seats
处理请求时的参数。
评测程序示例按照以下格式打印你的答案:
- 第
行( ):swap_seats
对于请求 的返回值
约定及限制
对于所支持的各种编程语言,下面列出了对应的数据类型。对于数据类型的细节等,参见实现示例。
语言 | 数组 |
||||
---|---|---|---|---|---|
时间限制:
空间限制: