#CF2004d. 彩色传送门
彩色传送门
D. 彩色传送门
时间限制:每个测试点 秒
内存限制: 兆字节
一条直线上有 个城市,城市编号为 到 。
传送门用于在城市之间移动。共有 种颜色的传送门:蓝色(B)、绿色(G)、红色(R)、黄色(Y)。
每个城市拥有两种不同颜色的传送门。你可以从城市 移动到城市 ,如果它们拥有至少一种相同颜色的传送门(例如,一个“蓝-红”城市和一个“蓝-绿”城市之间可以移动)。这种移动的花费为 枚金币。
你的任务是回答 个独立的询问:计算从城市 到城市 的最小花费。
输入格式
第一行包含一个整数 ()——测试用例的数量。
每个测试用例的第一行包含两个整数 和 ()——城市数量和询问数量。
第二行包含 个字符串,每个字符串为以下类型之一:BG、BR、BY、GR、GY、RY;第 个字符串描述了第 个城市中的传送门颜色。其中 B 表示蓝色,G 表示绿色,R 表示红色,Y 表示黄色。
接下来的 行中,每行包含两个整数 和 ()——第 个询问的描述。
附加输入限制:
- 所有测试用例的 之和不超过 ;
- 所有测试用例的 之和不超过 。
输出格式
对于每个询问,输出一个整数——从城市 到城市 的最小花费(如果不可能,则输出 )。
样例输入
2
4 5
BR BR GY GR
1 2
3 1
4 4
1 4
4 2
2 1
BG RY
1 2
样例输出
1
4
0
3
2
-1