_A8cde_ @ 2024-11-03 08:34:34
给你两个锅,分别有A升和B升的体积。可以执行以下操作:
FILL(i):从水龙头填充锅i(1≤i≤2);
DROP(i):将锅i排空至排水管;
POUR(i,j):从锅i倒入锅j;
在此操作之后,要么锅j已满(锅i中可能还有一些水),要么锅i是空的(并且其所有内容都已移到锅j 中)。
编写一个程序,找出这些操作的最短可能序列,以便在其中一个锅中产生恰好C升的水。
第一行也是唯一一行是数字A、B和C。这些都是 1 到 100 范围内的整数,并且C≤max(A,B)。
输出的第一行必须包含操作序列K的长度。以下K行必须每行描述一个操作。如果有几个最小长度的序列,输出其中的任何一个。如果无法达到预期的结果,文件的第一行也是唯一的一行必须包含单词“impossible”。
输入数据 1
3 5 4
输出数据 1
6
FILL(2)
POUR(2,1)
DROP(1)
POUR(2,1)
FILL(2)
POUR(2,1)
by bsdsdb @ 2024-11-03 09:33:44
@A8cde 记忆化搜索