E. 割圆【2023-03-2T5】

内存限制:256 MiB 时间限制:1000 ms 输入文件: cut.in 输出文件: cut.out
题目类型:传统 评测方式:文本比较

题目描述

本题将实现一个简化版的“割圆”游戏。成功点亮所有灯时,联结第一个和最后一个灯称之为“割线”。

n 盏灯环形分布,顺序编号为 1到 n。灯的初始状态为关闭不亮。假设 n 为 7,则第 1 号灯与第 2、7 号灯相邻,第 2 号灯与第 1、3 号灯相邻,以此类推。

灯的点亮规则如下:

1、输入 m 个数,每个数为某个灯的编号,可能重复或只是部分编号;

2、m 个数中的第 1 个数所对应的灯,默认点亮;

3、 如果输入数对应灯的左侧或右侧已被点亮,则点亮自身。否则啥也不做;

4、如果所有的灯都已被点亮,则程序结束,m 个数中尚未被处理的数将不再处理;

5、输出第 1 次和最后一次点亮灯的编号;

6、如果 m 个数处理完毕尚未点亮所有灯,则输出 No。

输入格式

第一行 2 个整数 n,m,保证 3<=n<=1000,1<=m<=10000。

第二行 m 个数,每个数都在 1 到 n 之间,表示输入序列。

输出格式

如果完成了“割圆”,则输出两个整数,之间用一个空格隔开,否则输出 No。

样例

样例输入

7 10
2 3 1 7 5 6 5 4 4 2

样例输出

2 4

提示

第 1 个数 2,直接被点亮; 
第 2 个数 3,3 与已亮的 2 相邻,被点亮; 
第 3 个数 1,1 与已亮的 2 相邻,被点亮; 
第 4 个数 7,7 与已亮的 1 相邻,被点亮; 
第 5 个数 5,5 与 4 和 6 相邻,但 4 和 6 都没亮,什么都不做; 
第 6 个数 6,6 与已亮的 7 相邻,被点亮; 
第 7 个数 5,5 与已亮的 6 相邻,被点亮; 
第 8 个数 4,4 与已亮的 5 相邻,被点亮; 
此时,所有的数都被点亮,第 1 个点亮的是 2,最后点亮的是 4。

数据范围与提示

202303电子学会二级T5