#xns2025004. GCD Game I

GCD Game I

GCD Game I

题目描述

Alice和Bob正在玩一个游戏,他们需要轮流对一个序列进行操作,Alice先手。

每次操作可以删去该序列的开头的数或者结尾的数。如果当前序列中已经没有数或者整个序列的gcd(最大公约数)值11,那么就无法进行操作。如果轮到某人时无法进行操作,那么他将输掉游戏。

现在给定他们的操作序列,请你判断游戏什么时候会结束以及谁会获胜。

输入描述

第一行输入一个整数 nn,代表序列长度。

第二行输入 nn 个整数,用空格隔开,代表要操作的序列。

第三行输入一个长度为 nn 的 01 序列,代表轮到每个人时的操作方法;如果是 0 代表选择删去开头,是 1 代表选择删去结尾。

输出描述

输出两行,第一行输出一个整数 xx ,代表游戏会在第 xx 次操作后结束。如果一开始就无法进行操作,则输出 00

第二行输出 "Alice" 代表最后Alice会获得胜利,否则输出 "Bob"。

样例输入1

5
10 3 4 2 8
01010

样例输出1

3
Alice

样例1解释

一开始序列为 [10, 3, 4, 2, 8],gcd值为1;

第一次操作后序列变为[3, 4, 2, 8],gcd值为1;

第二次操作后序列变为[3, 4, 2],gcd值为1;

第三次操作后序列变为[4, 2],gcd值为2。

所以第三次操作后游戏结束,此时轮到Bob,所以Alice获得胜利。

样例输入2

4
2 4 6 8
0000

样例输出2

0
Bob

数据范围与约定

对于 10%10\% 的数据,保证整个序列的gcd值不为1;

对于 50%50\% 的数据,1n10001 \le n \le 1000

对于 100%100\% 的数据,1n1051 \le n \le 10^5,序列中的每个值 numnum 满足 num[1,109]num \in [1, 10^9]