만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

Xormites

시간 제한1초메모리 제한256 MB

요약
두 플레이어가 수열의 양 끝에서 번갈아 값을 하나씩 꺼내 각자의 XOR 합에 더합니다. 선공이 이기는지, 후공이 이기는지, 무승부인지 판정합니다.
난이도

어려움10점 중 8점

유형
게임 이론, 비트 연산, 동적 계획법
정답자
아직 제출이 없습니다

문제

정수 NN개로 이루어진 수열에서 두 사람이 하는 다음 게임을 생각해 보자. 두 사람은 번갈아 가며 움직인다. 각 차례에 현재 플레이어는 수열의 맨 앞 또는 맨 뒤에 있는 값 하나를 골라 자신의 XOR 합에 더하고, 그 값을 수열에서 제거한다.

이것은 잘 알려진 게임이다. 하지만 이 문제에서는 플레이어가 일반 합이 아니라 XOR 합에 값을 더한다. 처음에 두 플레이어의 XOR 합은 모두 00이다. 새 값을 더할 때는 덧셈 대신 비트 단위 XOR 연산을 사용한다.

수열이 비면 게임이 끝난다. XOR 합이 가장 큰 플레이어가 이기며, 비기는 경우도 있다. 두 플레이어가 최적으로 행동할 때 게임의 결과를 구하라.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다 (1≤T≤121 \le T \le 12). 각 테스트 케이스는 정수 NN이 적힌 줄로 시작한다 (1≤N≤50 0001 \le N \le 50\,000). 다음 줄에는 NN개의 양의 정수가 주어진다 (1≤X≤1091 \le X \le 10^9).

출력

TT개의 줄을 출력한다. ii번째 줄에는 ii번째 테스트 케이스의 답을 출력한다. 답은 다음 중 하나이다.

  • 먼저 차례를 시작한 플레이어가 이기면 First
  • 나중에 차례를 시작한 플레이어가 이기면 Second
  • 게임이 비기면 Draw

예제1

  1. 예제 1

    입력
    3
    2
    3 3
    2
    3 5
    3
    4 4 4
    
    예상 출력
    Draw
    First
    Second