309161: CF1634B. Fortune Telling

Memory Limit:256 MB Time Limit:1 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Fortune Telling

题意翻译

Alice 和 Bob 在玩一个游戏。他们找到了一个长度为 $n$ 的数组 $a$。游戏开始时,Alice 手上的数是 $x$,而 Bob 手上的数是 $x+3$。开始后,每个人需要依次对 $i=1,2,\dots n$ 执行如下两种操作之一: - 将目前手上的数 $d$ 替换为 $d+a_i$。 - 将目前手上的数 $d$ 替换为 $d\oplus a_i$。 你只知道 Alice 和 Bob 两个人当中有一个人在执行上述操作之后手上的数是 $y$,但你不知道是谁。现在,给定 $n,x,y$ 和数组 $a$ 中所有的 $n$ 个数,你想知道通过执行上述操作后,谁手上的数可能是 $y$。 数据范围: - $t$ 组数据,$1\leqslant t\leqslant 10^4$。 - $1\leqslant n,\sum n\leqslant 10^5$,$0\leqslant x\leqslant 10^9$,$0\leqslant y\leqslant 10^{15}$。 - $0\leqslant a_i\leqslant 10^9$。 Translated by Eason_AC 2022.2.9

题目描述

Haha, try to solve this, SelectorUnlimited! — antontrygubO_o Your friends Alice and Bob practice fortune telling. Fortune telling is performed as follows. There is a well-known array $ a $ of $ n $ non-negative integers indexed from $ 1 $ to $ n $ . The tellee starts with some non-negative number $ d $ and performs one of the two operations for each $ i = 1, 2, \ldots, n $ , in the increasing order of $ i $ . The possible operations are: - replace their current number $ d $ with $ d + a_i $ - replace their current number $ d $ with $ d \oplus a_i $ (hereinafter $ \oplus $ denotes the [bitwise XOR operation](https://en.wikipedia.org/wiki/Exclusive_or)) Notice that the chosen operation may be different for different $ i $ and for different tellees. One time, Alice decided to start with $ d = x $ and Bob started with $ d = x + 3 $ . Each of them performed fortune telling and got a particular number in the end. Notice that the friends chose operations independently of each other, that is, they could apply different operations for the same $ i $ . You learnt that either Alice or Bob ended up with number $ y $ in the end, but you don't know whose of the two it was. Given the numbers Alice and Bob started with and $ y $ , find out who (Alice or Bob) could get the number $ y $ after performing the operations. It is guaranteed that on the jury tests, exactly one of your friends could have actually gotten that number. Hacks You cannot make hacks in this problem.

输入输出格式

输入格式


On the first line of the input, you are given one number $ t $ ( $ 1 \le t \le 10^4 $ ) — the number of test cases. The following $ 2 \cdot t $ lines contain test cases. The first line of each test case contains three numbers $ n $ , $ x $ , $ y $ ( $ 1 \le n \le 10^5 $ , $ 0 \le x \le 10^9 $ , $ 0 \le y \le 10^{15} $ ) — the length of array $ a $ , Alice's initial number (Bob's initial number is therefore $ x+3 $ ), and the number that one of the two friends got in the end. The second line of each test case contains $ n $ numbers — the array $ a $ ( $ 0 \le a_i \le 10^9 $ ). It is guaranteed that the sum of $ n $ over all test cases does not exceed $ 10^5 $ .

输出格式


For each test case, print the name of the friend who could get the number $ y $ : "Alice" or "Bob".

输入输出样例

输入样例 #1

4
1 7 9
2
2 0 2
1 3
4 0 1
1 2 3 4
2 1000000000 3000000000
1000000000 1000000000

输出样例 #1

Alice
Alice
Bob
Alice

说明

In the first test case, Alice could get $ 9 $ using the following operations: $ 7 + 2 = 9 $ . In the second test case, Alice could get $ 2 $ using this operations: $ (0 + 1) \oplus 3 = 2 $ . In the third test case, Bob started with $ x+3 = 0+3=3 $ and could get $ 1 $ this way: $ (((3 + 1) + 2) \oplus 3) \oplus 4 = 1 $ .

Input

题意翻译

Alice 和 Bob 在玩一个游戏。他们找到了一个长度为 $n$ 的数组 $a$。游戏开始时,Alice 手上的数是 $x$,而 Bob 手上的数是 $x+3$。开始后,每个人需要依次对 $i=1,2,\dots n$ 执行如下两种操作之一: - 将目前手上的数 $d$ 替换为 $d+a_i$。 - 将目前手上的数 $d$ 替换为 $d\oplus a_i$。 你只知道 Alice 和 Bob 两个人当中有一个人在执行上述操作之后手上的数是 $y$,但你不知道是谁。现在,给定 $n,x,y$ 和数组 $a$ 中所有的 $n$ 个数,你想知道通过执行上述操作后,谁手上的数可能是 $y$。 数据范围: - $t$ 组数据,$1\leqslant t\leqslant 10^4$。 - $1\leqslant n,\sum n\leqslant 10^5$,$0\leqslant x\leqslant 10^9$,$0\leqslant y\leqslant 10^{15}$。 - $0\leqslant a_i\leqslant 10^9$。 Translated by Eason_AC 2022.2.9

加入题单

上一题 下一题 算法标签: