测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A1743. 倒水问题

编程题 普及/提高-
知识点

题目描述

给你两个容量为 $n$ 和 $m$ 的水桶和无限多的水,两个桶初始为空,现在需要盛出容量为 $k$ 的水,由于水桶没有刻度,你只能进行如下几种操作

1. FILL x 表示将第 $x$ 个水桶装满,$x$ 为 $1$ 或 $2$

2. DROP x 表示将第 $x$ 个水桶清空,$x$ 为 $1$ 或 $2$

3. POUR x y 表示将第 $x$ 个桶的水全部倒入 $y$ 桶,$x$ 空了或 $y$ 满了停止,$x,y$ 为 $1$ 或 $2$

问最少需要的操作次数及操作过程。请严格按照以下顺序进行广搜。

```
FILL(1)
FILL(2)
DROP(1)
DROP(2)
POUR(1,2)
POUR(2,1)
```

##

输入格式

一行三个整数 $n,m,k(1 \leq n,m,k \leq 100)$。

输出格式

第一行一个整数 $x$ 表示最少操作次数。

接下来 $n$ 行,每行一个操作,若无法做到输出 impossible

输入输出样例

输入 #1
3 5 4
输出 #1
6
FILL(2)
POUR(2,1)
DROP(1)
POUR(2,1)
FILL(2)
POUR(2,1)
上一题 去做题 下一题