CF45F Goats and Wolves
题目描述
有一天,Vasya 需要尽快把 $m$ 只山羊和 $m$ 只狼从河岸运到对岸。船最多可以承载 $n$ 只动物(不包括 Vasya),允许实际搭载少于 $n$ 只动物。如果在某一处(某一岸或船上),狼的数量严格多于山羊,狼就会吃掉山羊,Vasya 会变得很难过。当 Vasya 划船从一岸到另一岸时,至少需要带上一只动物,否则他会觉得无聊,同样会感到难过。每次船到达河岸时,动物先同时下船,然后 Vasya 选择的动物同时登船。也就是说,在刚到达时,动物已经下船、准备离开的动物还未上船时,可能会发生山羊被吃掉的事情。
Vasya 需要将所有动物从一岸运到对岸,确保过程中无人被吃,也没有人感到难过。问他至少需要划多少次船。
输入格式
第一行包含两个用空格分隔的整数 $m$ 和 $n$($1 \leq m, n \leq 10^{5}$),分别表示动物数量和船的最大载动物量。
输出格式
如果无法保证山羊都生还且没有人感到难过,输出 $-1$。否则,输出唯一的整数,表示 Vasya 至少需要划船的次数。
说明/提示
第一个样例对应著名的儿童过河问题。
由 ChatGPT 5 翻译