bzoj#P2940. [Poi2000]条纹

[Poi2000]条纹

题目描述

条纹游戏是一个双人的游戏。所需要的物品有一个棋盘以及三种颜色的长方形条纹,这三种颜色分别是红色、绿色和蓝色。所有的红色条纹的尺寸是 c×1c\times 1,所有的绿色条纹的尺寸是 z×1z\times 1,所有的蓝色条纹的尺寸是 n×1n\times 1,这里 c,z,nc,z,n 是正整数。每种颜色的条纹每个游戏者都拥有无限多个。

一个棋盘是一个尺寸为 p×1p\times 1 的长方形,由 pp1×11\times 1 的方格组成。

游戏者轮流走,每一步都是由一个游戏者任选一种长方形条纹覆盖到棋盘上,并要求遵循以下规则:

  1. 条纹不能伸出棋盘之外;
  2. 不能覆盖在已有的条纹之上(即使部分也不行);
  3. 条纹的边缘必须与棋盘方格的边缘相重叠。谁不能再走,谁就输了。

先手是指在游戏中第一个走的游戏者。那么是否不管后手怎么走,先手都有必胜策略呢?

任务

写一个程序:

  1. 读入条纹的尺寸以及至少一个棋盘的尺寸;
  2. 对每一个给出的棋盘判断先手是否必胜;
  3. 将结果输出。

输入格式

第一行包含三个整数 c,z,nc,z,n,表示三种条纹的长度,依次为红色,绿色以及蓝色。每两个数之间都用空格隔开。

文件的第二行包括一个整数 mm 表示需要考虑的不同棋盘个数。

以下 33m+2m+2 行每行包括一个整数 pp。第 i+2i+2 行表示第 ii 个棋盘的长度。

输出格式

应当包含 mm 行。只有一个数字应当被写入文件的第 ii 行:

  1. 1—如果对第 ii 个棋盘先手有必胜策略。
  2. 2—其它。
1 5 1
3 
1 
5 
6
1
1
2

数据规模与约定

对于 100%100\% 的数据,1c,z,n1031\le c,z,n\le 10^31m1031 \le m \le 10^31p1031\le p\le 10^3