import java.util.Arrays;
import java.util.Scanner;
public class A030_Nim阶梯尼姆博弈 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] a = new int[n];
for (int i = 0; i < a.length; i++) {
a[i] = sc.nextInt();
}
Arrays.sort(a);
String ans = f(a);
System.out.println(ans);
}
public static String f(int[] a) {
int res = 0;
if ((a.length & 1) == 0) {
for (int i = 1; i < a.length; i += 2) {
res ^= a[i] - a[i - 1] - 1;
}
} else {
for (int i = 0; i < a.length; i += 2) {
if (i == 0)
res ^= a[i] - 1;
else
res ^= a[i] - a[i - 1] - 1;
}
}
if (res == 0)
return "Bob";
else
return "G";
}
}
- 首先把输入后的数据进行排序
- 求异或
- 异或时的逻辑有个数的奇偶判断,求两个位置中间的间隔
如果是奇数,就从第一个元素开始,先算他和前面那个的间隔,之后就是,每两个一组
如果是偶数,那就直接从下标1开始,然后对每两个数中间的间隔做异或