147. 三珠互斥
内存限制:256 MB
时间限制:1.000 S
题目描述
小红将 n 个珠子排成一排,然后将它们串起来,连接成了一串项链(连接后为一个环,即第一个和最后一个珠子也是相邻的),任意相邻两个珠子的距离为 1。已知初始共有 3 个珠子是红色的,其余珠子是白色的。
小红拥有无穷的魔力,她可以对项链上的相邻两个珠子进行交换。小红希望用最小的交换次数,使得任意两个红色的珠子的最小距离不小于 k,你能帮小红求出最小的交换次数吗?
输入
第一行输入一个正整数 t(1 <= t <= 10^4),代表询问次数。
每行为一次询间,输出五个正整数 n(1 <= n <= 10^9), k, a1, a2, a3(1 <= k, a1, a2, a3 <= n)保证 ai 互不相同。 分别代表珠子总数量, 要求的珠子距离,以及三个珠子的位置。
输出
输出 t 行,每行输入一个整数,代表最小的交换次数。如果无法完成目的,则输出 -1。
样例输入 复制
2
6 2 1 2 3
5 2 1 3 4
样例输出 复制
2
-1
提示
第一组样例,六个珠子为红红红白白白。第一次操作交换第一个和第六个珠子,第二次操作交换第三个和第四个珠子。
第二组样例,一共有5个珠子,其中有3个红珠子,因此无论如何都会有两个红珠子相邻,不可能满足任意两个红珠子的最小距离不小于2。