#4295. 分瓶?(Split?)

分瓶?(Split?)

题目描述

小高正在玩保龄球。保龄球瓶从1到10编号。以下图片是保龄球瓶的俯视图排列:

我们称图中两条虚线之间的部分为一个"列"。
例如,1号瓶和5号瓶属于同一列,3号瓶和9号瓶也属于同一列。

当一些保龄球瓶被击倒时,可能会出现一种称为"分裂"的特殊情况。
如果满足以下两个条件,则保龄球瓶的排列被称为分裂:

  1. 1号瓶被击倒。

  2. 存在两个不同的列满足以下两个条件:

    • 每列至少有一个保龄球瓶仍然站立。
    • 这两列之间存在一列,该列的所有保龄球瓶都被击倒。

现在,给你一个长度为10的字符串SS表示保龄球瓶的排列。对于i=1,...,10i=1,...,10,如果第ii个保龄球瓶被击倒,则SS的第ii个字符为'0',如果仍然站立,则为'1'。
请判断SS所表示的保龄球瓶排列是否为分裂。

输入格式

输入SS

输出格式

如果SS所表示的保龄球瓶排列是分裂,输出"Yes";否则,输出"No"。

样例

0101110101
Yes
0100101001
Yes
0000100110
No
1101110101
No

样例解释

【样例1说明】
在下图中,灰色表示被击倒的保龄球瓶,白色表示仍然站立的保龄球瓶:

在包含站立的5号瓶的列和包含站立的6号瓶的列之间,有一列包含3号和9号瓶。由于3号和9号瓶都被击倒,所以这个排列是分裂。
【样例2说明】

【样例3说明】

这个排列不是分裂。
【样例4说明】

这不是分裂,因为1号瓶没有被击倒。

数据范围

SS是一个长度为10的由'0'和'1'组成的字符串。

来源

  • AtCoder ABC267B