QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 256 MB Total points: 100
[0]

# 1999. Spaceship

Statistics

Bessie the cow has been abducted by aliens and is now trapped inside an alien spaceship! The spaceship has N (1N60) rooms labeled 1N, with one-way doors connecting between some pairs of rooms (due to the strange alien technology at play, it is even possible for a door to lead from a room back to itself!). However, no two doors share the same starting and end room. Additionally, Bessie has a remote with buttons numbered 1K (1K60).

The aliens will release Bessie if she can complete a strange task. First, they will choose two rooms, s and t (1s,tN), and two numbers, bs and bt (1bs,btK). They will start Bessie in room s and immediately have her press button bs. Bessie will then proceed to navigate the ship while pressing buttons. There are a few rules for what Bessie can do:

  • In each room, after pressing exactly one button, she must choose to either exit through a door to another (possibly the same) room or stop.
  • Once Bessie presses a button, it is invalid for her to press the same button again unless, in the time between uses, she has pressed a button with a higher number. In other words, pressing button number x will make it unavailable for use, while all buttons with numbers <x will be reset and again available for use.
  • If Bessie presses an invalid button, she automatically fails and the aliens will keep her.

Bessie is released only if she stops in room t, the last button she pressed was bt, and no invalid buttons were ever pressed.

Bessie is worried that she may not be able to complete the task. For Q (1Q60) queries, each consisting of what Bessie considers a likely choice of s,t,bs, and bt, Bessie wants to know the number of sequences of rooms and button presses that would lead to her release. Report your answers modulo 109+7 as they may be very large.

INPUT FORMAT (input arrives from the terminal / stdin):

The first line contains N,K,Q.

The next N lines each contain N bits (each 0 or 1). The j-th entry of the i-th line is 1 if there exists a door from room i to room j, and 0 if no such door exists.

This is followed by Q lines, each containing four integers bs, s, bt, t, denoting the starting button, starting room, final button, and final room respectively.

OUTPUT FORMAT (print output to the terminal / stdout):

The number of sequences for each of the Q queries modulo 109+7 on separate lines.

SAMPLE INPUT:

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

SAMPLE OUTPUT:

1
0
1
3
2
2
0
5
The doors connect rooms 12, 23, 34, 45, and 66. For the first query, Bessie must stop immediately after pressing the first button. For the second query, the answer is clearly zero because there is no way to get to room 1 from room 3. For the third query, Bessie's only option is to move from room 1 to room 2 to room 3 while pressing buttons 1, 2, and 3. For the fourth query, Bessie's pattern of movement is fixed, and she has three possible sequences of button presses:
  • (1,2,3,2,1)
  • (1,2,1,3,1)
  • (1,3,1,2,1)
For the last query, Bessie has five possible sequences of button presses:
  • (2)
  • (2,3,2)
  • (2,3,1,2)
  • (2,1,3,2)
  • (2,1,3,1,2)

SAMPLE INPUT:

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

SAMPLE OUTPUT:

26
49
29
27
18
22
This test case satisfies the constraints for all subtasks aside from the first.

SAMPLE INPUT:

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

SAMPLE OUTPUT:

713313311
716721076
782223918
335511486
539247783
Make sure to output the answers modulo 109+7.

SCORING:

  • In test cases 4-7, K5 and (bs,s) is the same for all queries.
  • In test cases 8-11, bs=K1 and bt=K for each query.
  • In test cases 12-15, N,K,Q20.
  • In test cases 16-23, there are no additional constraints.