#icpc2013summerday4f. [icpc2013summer_day4_f]Graph Automata Player
[icpc2013summer_day4_f]Graph Automata Player
问题描述
您和您的奶奶正在玩图形自动机,这是细胞自动机的一种推广。
图形自动机由一个图形表示。图形的顶点具有时间相关的值,可以是0或1。任意两个顶点之间最多只有一条边,但可能存在自环。
顶点的值根据以下规则定期变化:在时间时,如果从顶点到一个在时间时具有值1的顶点的边数为奇数,则顶点的值为1;否则为0。
现在,您健忘的奶奶忘记了自动机的过去状态。您的任务是编写一个程序,从当前时间和状态中恢复过去的状态-时间机器太贵了。可能有多个候选状态或没有一致的状态。对于这种情况,您必须打印出适当的错误消息。
输入
输入的格式如下:
...
:
:
...
:
:
第一行包含一个整数()。表示顶点的数量。接下来的行表示图的邻接矩阵。当元素为1时,表示从顶点到顶点有一条边。否则,表示没有边。接下来的行表示顶点的值向量。第个元素表示顶点在时间0的值。矩阵和向量的每个元素都可以是0或1。最后一行包含一个整数()。是您的奶奶想要了解的时间点的状态。
输出
以以下形式打印时间的值向量,每个值之间用一个空格分隔在一行中:
...
每个值必须用一个空格分隔开。如果没有一致的值向量,则应在一行中打印none
。如果有多个候选者且解不唯一(即解不唯一),则应在一行中打印ambiguous
。
示例输入1
2
1 1
0 1
1
1
1
示例输入1的输出
0 1
示例输入2
2
0 1
0 0
1
0
1
示例输入2的输出
ambiguous
示例输入3
2
0 1
0 0
1
0
2
示例输入3的输出
none