#P1288. 取数游戏 II

取数游戏 II

题目描述

有一个取数的游戏。初始时,给出一个环,环上的每条边上都有一个非负整数。这些整数中至少有一个 00。然后,将一枚硬币放在环上的一个节点上。两个玩家就是以这个放硬币的节点为起点开始这个游戏,两人轮流取数,取数的规则如下:

  1. 选择硬币左边或者右边的一条边,并且边上的数非 00

  2. 将这条边上的数减至任意一个非负整数(至少要有所减小);

  3. 将硬币移至边的另一端。

如果轮到一个玩家走,这时硬币左右两边的边上的数值都是 00,那么这个玩家就输了。

如下图,描述的是 Alice 和 Bob 两人的对弈过程(其中黑色节点表示硬币所在节点)。

各图的结果为:

A\text{A}:Alice 胜;B\text{B}:Bob 胜;C\text{C}:Alice 胜;D\text{D}:Bob 胜。

D\text{D} 中,轮到 Bob 走时,硬币两边的边上都是 00,所以 Alice 获胜。

现在,你的任务就是根据给出的环、边上的数值以及起点(硬币所在位置),判断先走方是否有必胜的策略。

输入格式

第一行一个整数 NN (N20)(N \leq 20),表示环上的节点数。

第二行 NN 个数,数值不超过 3030,依次表示 NN 条边上的数值。硬币的起始位置在第一条边与最后一条边之间的节点上。

输出格式

仅一行。若存在必胜策略,则输出 YES,否则输出 NO

4
2 5 3 0

YES

3
0 0 0

NO