在日本的茨城县内共有
你计划了
你是一个狼人。你有两种形态:人形和狼形。在每个行程开始的时候,你是人形。在每个行程结束的时候,你必须是狼形。在行程中,你必须要变身(从人形变成狼形)恰好一次,而且只能在某个城市内(包括可能是在
狼人的生活并不容易。当你是人形时,你必须避开人少的城市,而当你是狼形时,你必须避开人多的 城市。对于每一次行程
你的任务是,对每一次行程,判定是否有可能在满足上述限制的前提下,由城市
实现细节
你需要实现下面的函数:
int[] check_validity(int N, int[] X, int[] Y, int[] S, int[] E, int[] L, int[] R)
N
:城市的数量X
和Y
:两个长度为 的数组。对于每个 ( ),城市X[j]
都有道路直接连到城市Y[j]
。S
,E
,L
, 及R
:均为长度为 的数组,以表示行程。
注意,
对于每个测试样例,函数 check_validity
将被调用恰好一次。这个函数应返回长度为
例子
设
评测程序调用 check_validity(6, [5, 1, 1, 3, 3, 5], [1, 2, 3, 4, 0, 2], [4, 4, 5], [2, 2, 4], [1, 2, 3], [2, 2, 4])
。
对于行程
- 从城市
出发(你是人形) - 前往城市
(你是人形) - 再前往城市
(你是人形) - 你变身为狼(你现在是狼形)
- 前往城市
(你是狼形)
而对于行程
因此,你的程序必须返回
在样例数据下载中的文件 ex_werewolf1.in
和 ex_werewolf1.out
对应于本例。这个包中还包含另外一些输入/输出样例文件。
限制条件
- 对于每个
- 你可以通过道路由任意一个城市去另外任意一个城市。
- 每一对城市最多只由一条道路直接连起来。换言之,对于所有
,都有 和 - 对于每个
子任务
- (7 分)
, , - (8 分)
, , - (34 分)
且每个城市最多与两条路相连(所有城市是以一条直线的形式连起来) - (51 分)没有附加限制
评测程序示例
评测程序示例将按照以下格式读入输入数据:
- 第
行: - 第
行( ): - 第
行( ):
评测程序示例将以如下格式把 check_validity
的返回值打印出来:
- 第
行( ):
约定及限制
对于所支持的各种编程语言,下面列出了对应的数据类型。对于数据类型的细节等,参见实现示例。
语言 | 数组 |
||||
---|---|---|---|---|---|
时间限制:
空间限制: