TopCoder

Adrien Wu
$ \begin{align} AC \times 2^9 \\ \text{New TIOJ ?} \end{align} $

User's AC Ratio

92.3% (36/39)

Submission's AC Ratio

54.9% (56/102)

Tags

Description

Original Description

眾所皆知,拈(Nim)是一個很經典的遊戲,有許多數學家研究出了許多變形。

今天,有兩個人正在玩 Nim 遊戲:現在地面上總共有 $N$ 堆石頭,第 $i$ 堆有 $a_i$ 顆石頭。遊戲開始時,先手和後手會輪流取石頭,先手先取。玩家取石頭的方式為:選擇一堆數量非零的石頭堆,拿走正整數數量的石頭。如果有玩家無法執行上面那個操作,他就輸了。

但是,那兩個人玩的遊戲中,先手可以在遊戲開始之前作弊(也可以選擇不要作弊),先手可以選擇任意一堆數量非零的石頭,並且拿走一顆石頭。

請問,在上述遊戲規則中,先手、後手都使用最佳策略的情況下,誰會取得勝利。

Original Input Format

輸入第一行有一個正整數 $T$,代表共有幾筆測試資料。

每筆測試資料佔兩行,第一行包含一個正整數 $N$ ,代表石頭的堆數。

接下來的一行,包含 $N$ 個整數,第 $i$ 個整數為 $a_i$ ,代表第 $i$ 堆石頭的個數。

  • $1 \le T \le 10$
  • $1 \le N \le 10^ 5$
  • $0 \le a_i \le 10^ 9$

Original Output Format

對於每筆測試資料,如果先手會獲得勝利,請輸出 First ,否則請輸出 Second

Original Sample Input

2
9
1 2 3 4 5 6 7 8 9
5
6 3 1 2 6

Original Sample Output

First
First

Program To Be Hacked

#include <cstdio>
int main () {
    int T;
    scanf("%d",&T);
    for (int cases=0;cases<T;++cases) {
        int n;
        scanf("%d",&n);
        for (int i=0;i<n;++i) {
            int x;
            scanf("%d",&x);
        }
        printf("First\n");
    }
}

Judge Method

雖然原題的 $T$ 的範圍限制高達 $10$,但請輸出一個 $T=1$ 的測試資料,使得上述的程式碼會輸出錯的答案。

Sample Code

以下程式碼能產生本題合法但一定不會讓你得到 AC 的測試資料。

#include <cstdio>
int main() {
    printf("1\n5\n1 2 3 4 5\n");
}

Input Format

Output Format

Hints

Problem Source

Subtasks

No. Testdata Range Score
1 0 1

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 1000 262144 262144 1