#308. 交通实时查询系统

交通实时查询系统

题目描述

某城市的交通堵塞问题非常严重,为解决这一问题,该城市建立了实时查询系统来检测所有交通情况。

该城市有 N\red {N }个交叉口,M\red {M} 条道路,每条道路连接两个交叉口,且都是双向的。

实时查询系统的一个重要任务就是帮助司机找到从指定道路行驶到另一条指定道路必经的交叉口有多少个。

输入格式

输入包含多组测试数据。

每组数据第一行包含两个整数 N\red {N}M\red {M}

接下来 M\red {M} 行,每行包含两个不同的整数 X\red {X}Y\red {Y},表示交叉口 X\red {X}Y\red {Y} 之间存在一条道路,第 i\red {i} 行的道路编号为 i\red {i}

接下来一行,包含整数 Q\red {Q},表示查询系统的询问次数。

接下来 Q\red {Q} 行,每行包含两个整数 S\red {S}T\red {T},表示从道路 S\red {S} 行驶到道路 T\red {T},输入保证至少有一条道路可以连通 S\red {S}T\red {T}

当输入一行为0 0\red {0~ 0}时,表示输入终止。

输出格式

每次询问输出一个整数,表示必须经过的交叉口的个数。

每个结果占一行。

样例

输入样例

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

输出样例

0
1

提示

0<N10000\red {0<N≤10000},

0<M100000\red {0<M≤100000},

0<Q10000\red {0<Q≤10000},

0<X,YN\red {0<X,Y≤N},

0<S,TM\red {0<S,T≤M}