#Y100. 三牧中学2023-10-28周六集训-T1

三牧中学2023-10-28周六集训-T1

题目背景

有一头名叫Kangkang的奶牛,他因为年老没用了被主人嫌弃,主人做了一个手推车,趁他睡觉时把他丢到了一个迷宫当中,现在Kangkang想要知道怎么走出这个迷宫。

题目描述

Kangkang被困在一个N * M的迷宫里,他刚开始在S字符这个位置,迷宫内墙用#号表示,路径用.表示, 迷宫只有一个出口,用P表示,在迷宫中还会有许多传送路径,这些路径是单向的,在通过传送路径传送到其他地点时是不计入路径长度的,注意,Kangkang已经走过的路径Kangkang不会再次行走,当到达一个传送路径起始点时,并不是强制使用,现在,Kangkang想知道到达出口的最短路径

输入格式

第一行输入两个数字,N和M

接下来N行里每行有M个字符,表示迷宫内的情况

第N + 2行输入一个数字Q,表示这张地图有Q条单向传送路径

接下来Q行每行有4个数字,分别表示起点行,起点列,终点行,终点列

输出格式

只输出一个数字,表示到达出口的最短路径,如果无法到达出口,输出一个-1

样例 #1

样例输入 #1

5 5
S.#.P
..#..
..#..
..#..
..#..
1
5 2 5 5

样例输出 #1

9

提示

样例#1解释

向下走4步,向右走1步到达传送路径传送到5 5,之后向上走4步到达终点,共4+1+4=9步

数据范围

N,M,Q <= 300,保证无自环