만드는 중입니다

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

우주선

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

요약
각 질의마다 방 s에서 버튼 b_s로 출발해 방 t에서 버튼 b_t로 끝나는 유효한 이동과 버튼 입력의 수를 10^9+7로 나눈 나머지로 구합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 그래프, 행렬
정답자
아직 제출이 없습니다

문제

Bessie라는 소가 외계인에게 납치되어 우주선 안에 갇혔다. 우주선에는 NN (1≤N≤60)(1\le N\le 60)개의 방이 있고 방 번호는 1…N1\ldots N이다. 방과 방 사이에는 한 방향으로만 통하는 문이 일부 있으며, 같은 출발 방과 도착 방을 잇는 문은 둘 이상 없다. 문이 방에서 자기 자신으로 돌아오는 것도 가능하다. Bessie에게는 번호가 1…K1\ldots K (1≤K≤60)(1\le K\le 60)인 버튼이 달린 리모컨이 있다. 외계인은 시작 방 ss와 도착 방 tt (1≤s,t≤N)(1\le s,t\le N), 그리고 수 bsb_s와 btb_t (1≤bs,bt≤K)(1\le b_s,b_t\le K)를 고른다. Bessie는 방 ss에서 출발하며 곧바로 버튼 bsb_s를 누른다. 이후 아래 규칙에 따라 버튼을 누르며 우주선을 돌아다닌다. 각 방에서는 버튼을 정확히 하나 누른 뒤, 문을 통해 다른 방(같은 방도 가능)으로 나가거나 멈춰야 한다. 한 번 누른 버튼은 그 뒤에 더 큰 번호의 버튼을 누른 적이 없다면 다시 누를 수 없다. 버튼 xx를 누르면 xx는 사용할 수 없게 되고, 번호가 xx보다 작은 버튼은 모두 다시 사용할 수 있게 된다. 사용할 수 없는 버튼을 누르면 Bessie는 실패하고 외계인에게 붙잡힌다. Bessie는 방 tt에서 멈추고, 마지막으로 누른 버튼이 btb_t이며, 사용할 수 없는 버튼을 한 번도 누르지 않았을 때만 풀려난다. QQ (1≤Q≤60)(1\le Q\le 60)개의 질의가 주어진다. 각 질의는 ss, tt, bsb_s, btb_t의 조합이며, 각 질의마다 Bessie가 풀려나게 되는 방 이동과 버튼 누름 순서의 수를 109+710^9+7로 나눈 나머지로 구하라.

입력

첫 줄에 NN, KK, QQ가 주어진다. 이어지는 NN개 줄에는 각각 NN개의 비트(0 또는 1)가 주어진다. ii번째 줄의 jj번째 비트가 1이면 방 ii에서 방 jj로 가는 문이 있고, 0이면 없다. 그 다음 QQ개 줄에 각각 정수 네 개 bsb_s, ss, btb_t, tt가 주어진다.

출력

각 질의의 답을 109+710^9+7로 나눈 나머지를 한 줄에 하나씩 출력한다.

예제3

  1. 예제 1

    입력
    6 3 8
    010000
    001000
    000100
    000010
    000000
    000001
    1 1 1 1
    3 3 1 1
    1 1 3 3
    1 1 1 5
    2 1 1 5
    1 1 2 5
    3 1 3 5
    2 6 2 6
    
    예상 출력
    1
    0
    1
    3
    2
    2
    0
    5
    
  2. 예제 2

    입력
    6 4 6
    001100
    001110
    101101
    010111
    110111
    000111
    3 2 4 3
    3 1 4 4
    3 4 4 1
    3 3 4 3
    3 6 4 3
    3 1 4 2
    
    예상 출력
    26
    49
    29
    27
    18
    22
    
  3. 예제 3

    입력
    6 10 5
    110101
    011001
    001111
    101111
    111010
    000001
    2 5 2 5
    6 1 5 2
    3 4 8 3
    9 3 3 5
    5 1 3 4
    
    예상 출력
    713313311
    716721076
    782223918
    335511486
    539247783