만드는 중입니다

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

게임

시간 제한8초메모리 제한512 MB

요약
두 플레이어가 번갈아 수열의 양 끝 원소를 하나씩 제거합니다. 남은 수열이 종료 수열 중 하나가 되면 마지막으로 움직인 쪽이 이깁니다. 선공, 후공, 무승부 중 결과를 구합니다.
난이도

어려움10점 중 9점

유형
게임 이론, 동적 계획법, 문자열 매칭
정답자
아직 제출이 없습니다

문제

두 명이 번갈아 하는 다음 게임을 생각해 보자. 처음에 수열이 주어진다. 플레이어들은 차례대로 수열의 맨 앞 원소 또는 맨 뒤 원소 중 하나를 제거한다. 어떤 행동 후 수열이 여러 종료 수열 중 하나가 되면 게임이 끝나고, 마지막으로 행동한 플레이어가 이긴다. 아무도 행동할 수 없으면(수열의 길이가 00이면) 아무도 이기지 못한다. 이 게임에서 필승 전략이 있는 플레이어를 구하라.

입력

입력의 첫 줄에는 테스트 케이스의 수 zz가 주어진다. 그 뒤로 테스트 케이스의 설명이 이어진다.

각 테스트 케이스의 첫 줄에는 정수 nn (1≤n≤1061 \le n \le 10^6)과 이어서 nn개의 정수 a1,a2,…,ana_1, a_2, \ldots, a_n (0≤ai≤1090 \le a_i \le 10^9)이 주어진다. 이것이 초기 수열이다. 둘째 줄에는 종료 수열의 개수 kk가 주어진다. 다음 kk개의 줄에는 종료 수열의 설명이 주어진다. 각 줄에는 수열의 길이 mm (m≥1m \ge 1)과 이어서 수열의 mm개 원소 w1,w2,…,wmw_1, w_2, \ldots, w_m (0≤wi≤1090 \le w_i \le 10^9)이 주어진다. 종료 수열들의 길이 합은 3⋅1063 \cdot 10^6을 넘지 않는다.

테스트 케이스 사이는 빈 줄 하나로 구분한다.

출력

각 테스트 케이스마다 첫 번째로 행동하는 플레이어가 이기면 "FIRST", 나머지 플레이어가 이기면 "SECOND", 아무도 이기지 못하면 "DRAW"를 출력한다.

예제1

  1. 예제 1

    입력
    1
    5 1 1 2 2 1
    4
    1 2
    3 1 2 2
    2 2 1
    2 1 1
    
    예상 출력
    SECOND