atcoder#ARC159A. [ARC159A] Copy and Paste Graph

[ARC159A] Copy and Paste Graph

配点 : 300300

問題文

NNNN 列の行列 A=(ai,j)A=(a_{i,j}) が与えられます。ここで、ai,j{0,1}a_{i,j} \in \{0,1\} が成り立ちます。

また、以下のような有向グラフがあります。

  • 頂点数は NKNK で、各頂点には 1,2,,NK1,2,\ldots,NK と番号が付けられている。
  • 辺は AA を縦 KK 行横 KK 列に並べて得られる NKNKNKNK 列の行列 X=(xi,j)X=(x_{i,j}) によって表される(入出力例1にて A,KA, K に対応する XX が示されている)。具体的には、xi,j=1x_{i,j}=1 ならば頂点 ii から頂点 jj への有向辺が存在し、xi,j=0x_{i,j}=0 ならば存在しない。

i=1,2,,Qi=1,2,\ldots,Q に対し、次の問題に答えてください。

  • 頂点 sis_i から頂点 tit_i への経路の長さ(辺の本数)の最小値を求めよ。ただし、そのような経路が存在しない場合は代わりに -1 と出力せよ。

制約

  • 1N1001 \leq N \leq 100
  • 1K1091 \leq K \leq 10^9
  • ai,j{0,1}a_{i,j} \in \{0,1\}
  • 1Q1001 \leq Q \leq 100
  • 1si,tiNK1 \leq s_i,t_i \leq NK
  • sitis_i \neq t_i
  • 入力はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

NN KK

a1,1a_{1,1} \ldots a1,Na_{1,N}

\vdots

aN,1a_{N,1} \ldots aN,Na_{N,N}

QQ

s1s_1 t1t_1

\vdots

sQs_Q tQt_Q

出力

QQ 行出力せよ。xx 行目には、i=xi=x に対する問題の答えを出力せよ。

3 2
1 1 1
1 1 0
0 1 0
4
1 2
1 4
1 6
6 3
1
1
1
3

この例において、辺を表す行列 XX は以下のようになります。

1 1 1 1 1 1
1 1 0 1 1 0
0 1 0 0 1 0
1 1 1 1 1 1
1 1 0 1 1 0
0 1 0 0 1 0
4 1000000000
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
1
1 4000000000
-1

辺が 11 本も存在しません。