#P1472. 2023.08.20-ZJTD秋招第一场-第一题-塔子哥的纸带
2023.08.20-ZJTD秋招第一场-第一题-塔子哥的纸带
![](https://s3.bmp.ovh/imgs/2024/09/03/9ec1757951030a02.jpg)
塔子哥有一个纯白的环形纸带(首尾相连)。这个纸带被划分成n个格子。最开始,塔子哥在纸带上选择了三个格子,把它染黑。
现在塔子哥让你把他们通过移动操作把纸带变成平衡状态。
平衡状态:任意两个黑色格子的距离不小于k (相邻格子距离为1)
移动操作:交换相邻格子的颜色。
同时,塔子哥是一个很注重效率的人,所以他希望你使用最少的移动次数使得纸带达到平衡。
第一行输入一个正整数t,代表询问次数。
每行为一次询问,输出五个正整数n,k,a1,a2,a3,分别代表纸带的格子数、要求的距离,以及三个黑色格子的初始位置。
1≤t≤104
1≤n≤109
1≤k,a1,a2,a3≤n
输出t行,每行输入一个整数,代表最小的交换次数。如果无法完成目的,则输出−1。
输入输出示例仅供调试,后台判题数据一般不包含示例
输入
3
5 1 1 2 3
5 2 1 2 3
6 2 2 3 6
输出
0
-1
1
说明
第一组样例,无需交换即可满足任意两个黑色格子的距离为1,输出0
第二组样例,由于相隔为2的情况下至少需要6个格子,则5个格子无论如何无法满足条件,输出-1
第三组样例,状态为:白黑黑白白黑。我们只需要交换一次变成白黑白黑白黑即可满足条件。输出1
扫码备注加群即可,期待您的到来~
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.