Hai bình nước
Đề bài
Mô tả
Có hai bình rỗng, bình thứ nhất chứa được tối đa lít, bình thứ hai chứa được tối đa lít, và một vòi nước không giới hạn. Mỗi thao tác là một trong các việc sau:
- đổ đầy một bình từ vòi;
- đổ hết nước trong một bình đi;
- rót nước từ bình này sang bình kia cho đến khi bình rót cạn hoặc bình nhận đầy.
Bình không có vạch chia, nên chỉ thực hiện được đúng các thao tác trên. Hãy tìm số thao tác ít nhất để một trong hai bình chứa đúng lít, hoặc in nếu không làm được.
Mỗi tệp dữ liệu gồm nhiều bộ test độc lập.
Dữ liệu vào
- Dòng đầu chứa số bộ test .
- Mỗi bộ test gồm một dòng chứa ba số nguyên .
Dữ liệu ra
Với mỗi bộ test, in một số nguyên trên một dòng: số thao tác ít nhất, hoặc .
Ràng buộc
- và
- Tổng trên mọi bộ test không vượt quá
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 3 5 4 2 4 3 7 7 7 |
6 -1 1 |
Bộ 1: đổ đầy bình 5 lít, rót sang bình 3 lít (còn 2), đổ hết bình 3 lít, rót 2 lít sang, đổ đầy bình 5 lít, rót sang cho đầy bình 3 lít: bình 5 lít còn 4. Bộ 2: lượng nước trong mỗi bình luôn chẵn. Bộ 3: đổ đầy một bình. |
| 2 4 9 6 6 10 8 |
8 6 |
Bộ 1: . Bộ 2: . |
Bình luận