#D1243. 割圆
割圆
当前没有测试数据。
题目描述
本题将实现一个简化版的 “割圆” 游戏。成功点亮所有灯时,联结第一个和最后一个灯称之为 “割线”。
盏灯环形分布,顺序编号为 到 。灯的初始状态为关闭不亮。假设 为 ,则第 号灯与第 、 号灯相邻,第 号灯与第 、 号灯相邻,以此类推。
灯的点亮规则如下:
- 输入 个数,每个数为某个灯的编号,可能重复或只是部分编号;
- 个数中的第 个数所对应的灯,默认点亮;
- 如果输入数对应灯的左侧或右侧已被点亮,则点亮自身。否则啥也不做;
- 如果所有的灯都已被点亮,则程序结束, 个数中尚未被处理的数将不再处理;
- 输出第 次和最后一次点亮灯的编号;
- 如果 个数处理完毕尚未点亮所有灯,则输出
No
。
输入格式
第一行 个整数 ,,保证 ,。
第二行 个数,每个数都在 到 之间,表示输入序列。
输出格式
如果完成了 “割圆”,则输出两个整数,之间用一个空格隔开,否则输出 No
。
7 10
2 3 1 7 5 6 5 4 4 2
2 4
- 第 个数 ,直接被点亮;
- 第 个数 , 与已亮的 相邻,被点亮;
- 第 个数 , 与已亮的 相邻,被点亮;
- 第 个数 , 与已亮的 相邻,被点亮;
- 第 个数 , 与 和 相邻,但 和 都没亮,什么都不做;
- 第 个数 , 与已亮的 相邻,被点亮;
- 第 个数 , 与已亮的 相邻,被点亮;
- 第 个数 , 与已亮的 相邻,被点亮;
- 此时,所有的数都被点亮,第 个点亮的是 ,最后点亮的是 。