만드는 중입니다

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

격자 게임

면접 대비

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

요약
막힌 칸이 있는 격자에서 말을 아래, 오른쪽, 대각선으로 최대 K칸 움직여 (N, M)에 먼저 도달하는 쪽을 각 시작 위치마다 판별합니다.
난이도

보통10점 중 4점

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

문제

한국이와 정올이는 격자 모양의 보드에서 한국이부터 차례로 번갈아 말을 움직이는 게임을 한다. 자신의 차례는 건너뛸 수 없다.

보드는 NN개의 행과 MM개의 열로 이루어져 있고, 일부 칸은 막혀 있다. 막혀 있는 칸으로는 말을 움직일 수 없다. 편의상 위에서부터 ii번째 행과 왼쪽에서부터 jj번째 열이 만나는 칸을 (i,j)(i, j)로 표기한다.

말은 한 번에 아래로 한 칸, 오른쪽으로 한 칸, 또는 오른쪽 아래 대각선 방향으로 11, 22, ⋯\cdots, KK칸 움직일 수 있다. (보드 밖이나 막혀 있는 칸으로는 움직일 수 없다. K=0K = 0이면 대각선 방향으로 움직일 수 없다.)

움직임 규칙의 예를 살펴보자.

N=6N = 6, M=8M = 8, K=3K = 3이고 막혀 있는 칸이 없는 보드에서 (2,3)(2, 3)에 놓인 말은 5개의 칸으로 움직일 수 있다. 아래 그림에서 O로 표시된 칸이다.

(2,4)(2, 4)와 (4,5)(4, 5)가 막혀 있다고 하자. 이때 (2,3)(2, 3)의 말은 3개의 칸으로 움직일 수 있다. 아래 그림에서 O로 표시된 칸이다.

다음 그림은 N=6N = 6, M=8M = 8, K=3K = 3이고 막혀 있는 칸이 없는 보드다. (5,7)(5, 7)에 놓인 말은 3개의 칸으로 움직일 수 있다. O로 표시된 칸이다.

마지막으로 N=6N = 6, M=8M = 8, K=0K = 0이고 막혀 있는 칸이 없는 보드를 보자. (1,1)(1, 1)에 놓인 말은 2개의 칸으로 움직일 수 있다. O로 표시된 칸이다.

게임의 목표는 말을 보드의 오른쪽 아래 칸 (N,M)(N, M)으로 옮기는 것이다. 마지막으로 말을 움직인 사람이 이긴다. 두 사람 모두 최선을 다한다고 가정한다.

시작 위치에 따라 승자가 달라질 수 있다. 보드 위의 QQ개의 위치 (x1,y1)(x_1, y_1), (x2,y2)(x_2, y_2), ⋯\cdots, (xQ,yQ)(x_Q, y_Q)가 주어질 때, 각 위치에서 게임을 시작하면 누가 이기는지 구하라.

입력

첫 번째 줄에 정수 NN, MM, KK가 공백을 사이에 두고 주어진다.

이후 NN개의 줄에 걸쳐 #과 .으로만 이루어진 길이 MM의 문자열이 한 줄에 하나씩 주어진다. ii번째 줄의 jj번째 문자가 #이면 (i,j)(i, j)가 막혀 있는 칸이고, .이면 막혀 있지 않은 칸이다.

그다음 줄에 정수 QQ가 주어진다.

이후 QQ개의 줄 중 ii번째 줄에는 정수 xix_i와 yiy_i가 공백을 사이에 두고 주어진다.

출력

주어진 QQ개의 위치마다 한국이가 이기면 First를, 정올이가 이기면 Second를 한 줄에 하나씩 순서대로 출력하라.

제한

  • 2≤N≤3002 \le N \le 300
  • 2≤M≤3002 \le M \le 300
  • K≥0K \ge 0
  • K≤N−1K \le N - 1
  • K≤M−1K \le M - 1
  • (N,M)(N, M) 칸은 막혀 있지 않다.
  • 막혀 있지 않은 임의의 칸에서 시작해 규칙에 따라 말을 (N,M)(N, M)으로 옮길 수 있다.
  • 1≤Q≤3001 \le Q \le 300
  • 모든 ii (1≤i≤Q1 \le i \le Q)에 대해:
    • 1≤xi≤N1 \le x_i \le N, 1≤yi≤M1 \le y_i \le M
    • (xi,yi)(x_i, y_i) 칸은 막혀 있지 않다.
    • (xi,yi)(x_i, y_i)는 (N,M)(N, M)이 아니다.

예제3

  1. 예제 1

    입력
    2 2 0
    .#
    ..
    2
    1 1
    2 1
    
    예상 출력
    Second
    First
    
  2. 예제 2

    입력
    2 2 1
    ..
    ..
    1
    1 1
    
    예상 출력
    First
    
  3. 예제 3

    입력
    3 4 0
    ....
    .#..
    ....
    1
    3 2
    
    예상 출력
    Second