#S6U08P04. 【作业】检查循环节目表

【作业】检查循环节目表

检查循环节目表

【难度:T2】【知识点:格雷码】【知识点:字符串】

前置知识:二进制位、数组、循环;查询题另需镜像递归。

题目描述

导演给出 2n2^n 行长度为 nn 的合法二进制串。判断它们能否构成完整循环格雷码:每种状态各出现一次;连续两行恰好一位不同;最后一行与第一行也恰好一位不同。允许任何满足条件的顺序,不要求与反射生成表相同。

输入格式

第一行整数 nn,接下来 2n2^n 行各一个长度为 nn 的二进制串,保证每行只含 0、1。

输出格式

合法输出 YES,否则输出 NO。

数据范围

1≤n≤101\le n\le10,输入行数、串长和字符合法。

样例输入

2
00
01
00
01

样例输出

NO

样例解释

虽然相邻切换只差一位,但重复了状态,遗漏另外两种状态。