피돌이 vs 피붕이
시간 제한1초메모리 제한1024 MB
외차수가 2 이하인 DAG와 각 정점의 돌 개수가 주어질 때, 돌을 간선으로 옮기는 게임에서 선공과 후공 중 누가 이기는지 판정한다.
문제
각 정점에서 나가는 간선이 최대 2개이고 정점이 개인 유향 비순환 그래프(DAG)가 주어진다. 초기에 그래프의 번 정점 위에는 개의 돌멩이가 놓여있다. 피돌이와 피붕이가 이 그래프를 이용해 다음과 같은 게임을 한다.
- 선공부터 번갈아 가며 다음을 반복한다.
- 간선 1개를 고른다. 고른 간선의 출발 정점과 도착 정점을 각각 , 라고 하자. 에서 돌멩이 개 또는 개를 골라 로 옮긴다.
- 자신의 차례에 위 시행을 할 수 없게 된 사람이 지게 된다.
다른 문제들의 지문에서 알 수 있듯이 피돌이가 이겼다. 그래프가 주어질 때 피돌이가 선공이었을지 후공이었을지 판단해 보자. 단, 둘 다 최선의 전략을 사용했다고 가정한다.
입력
첫째 줄에 테스트 케이스의 개수 가 주어진다.
각 테스트 케이스의 첫째 줄에 그래프의 정점 개수와 간선 개수 , 이 공백을 두고 주어진다.
각 테스트 케이스의 둘째 줄에 각 정점에 놓인 돌멩이의 개수를 나타내는 개의 정수 이 공백을 두고 주어진다.
각 테스트 케이스의 다음 줄에 각 간선의 출발 정점과 도착 정점 , 가 공백을 두고 주어진다.
중복간선이 없고 모든 정점의 외차수(outdegree)가 2 이하임이 보장된다. 즉, 서로 다른 두 정수 에 대해 항상 이며 를 만족하는 가 3개 이상이 되게하는 는 존재하지 않는다.
모든 테스트 케이스에서 의 합은 을 넘지 않는다.
출력
각 테스트 케이스의 첫째 줄에 피돌이가 선공이었다면 First, 후공이었다면 Second를 출력한다.