[POI 2000] 条纹

Luogu
IDLGP8369
Time1000ms
Memory128MB
DifficultyP5
博弈论2000POI(波兰)SG 函数
条纹游戏是一个双人的游戏。所需要的物品有一个棋盘以及三种颜色的长方形条纹,这三种颜色分别是红色、绿色和蓝色。所有的红色条纹的尺寸是 $c \times 1$,所有的绿色条纹的尺寸是 $z \times 1$,所有的蓝色条纹的尺寸是 $n \times 1$,这里 $c,z,n$ 是正整数。每种颜色的条纹每个游戏者都拥有无限多个。 一个棋盘是一个尺寸为 $p \times 1$ 的长方形,由 $p$ 个 $1 \times 1$ 的方格组成。 游戏者轮流走,每一步都是由一个游戏者任选一种长方形条纹覆盖到棋盘上,并要求遵循以下规则: 1. 条纹不能伸出棋盘之外。 2. 不能覆盖在已有的条纹之上(即使部分也不行)。 3. 条纹的边缘必须与棋盘方格的边缘相重叠。谁不能再走,谁就输了。 先手是指在游戏中第一个走的游戏者。那么是否不管后手怎么走,先手都有必胜策略呢? 请你编写一个程序: 1. 读入条纹的尺寸以及至少一个棋盘的尺寸。 2. 对每一个给出的棋盘判断先手是否必胜。 3. 将结果输出。 ## Input 第 $\text{1}$ 行包含三个整数 $c,z,n$,表示三种条纹的长度,依次为红色,绿色以及蓝色。每两个数之间都用空格隔开。 文件的第 $\text{2}$ 行包括一个整数 $m$ 表示需要考虑的不同棋盘个数。以下 $\text{3}$ 到 $\text{m+2}$ 行每行包括一个整数 $p$ ,第 $\text{i+2}$ 行表示第 $\text{i}$ 个棋盘的长度。 ## Output 应当包含 $m$ 行。只有一个数字应当被写入文件的第 $i$ 行: 如果对第 $i$ 个棋盘先手有必胜策略,输出 $1$,否则输出 $2$。 [samples] ## Note 对于 $100$ % 的数据: $1 \le c,z,n,m,p \le 1000$。
Samples
Input #1
1 5 1
3
1
5
6
Output #1
1
1
2
API Response (JSON)
{
  "problem": {
    "name": "[POI 2000] 条纹",
    "description": {
      "content": "条纹游戏是一个双人的游戏。所需要的物品有一个棋盘以及三种颜色的长方形条纹,这三种颜色分别是红色、绿色和蓝色。所有的红色条纹的尺寸是 $c \\times 1$,所有的绿色条纹的尺寸是 $z \\times 1$,所有的蓝色条纹的尺寸是 $n \\times 1$,这里 $c,z,n$ 是正整数。每种颜色的条纹每个游戏者都拥有无限多个。 一个棋盘是一个尺寸为 $p \\times 1$ 的长方形,由 $p",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 131072
    },
    "difficulty": {
      "LuoguStyle": "P5"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP8369"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "条纹游戏是一个双人的游戏。所需要的物品有一个棋盘以及三种颜色的长方形条纹,这三种颜色分别是红色、绿色和蓝色。所有的红色条纹的尺寸是 $c \\times 1$,所有的绿色条纹的尺寸是 $z \\times 1$,所有的蓝色条纹的尺寸是 $n \\times 1$,这里 $c,z,n$ 是正整数。每种颜色的条纹每个游戏者都拥有无限多个。\n\n一个棋盘是一个尺寸为 $p \\times 1$ 的长方形,由 $p...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments