WEBSITE ĐÃ HOẠT ĐỘNG TRỞ LẠI, TUY NHIÊN SỐ LƯỢNG SUBMIT BỊ GIỚI HẠN MỖI NGÀY CÒN RẤT ÍT (THEO CHÍNH SÁCH MỚI CỦA JUDGE0, BÊN CUNG CẤP API). DO VẬY RẤT MONG CÁC BẠN CHÚ Ý TEST THẬT KỸ CODE TRƯỚC KHI SUBMIT.

Đổ nước

Đề bài:
Cho 3 chiếc bình đựng được lượng nước tương ứng là x, y. Có cách nào để xác định được z lít bằng cách sử dụng hai bình x, y (ban đầu không có nước) với các điều kiện như sau:

Đổ đầy nước vào bình.
Làm trống 1 bình.
Đổ nước từ bình này sang bình kia với điều kiện bình được đổ phải đầy nước hoặc bình đổ qua phải hết.
z lít này có thể ở một hoặc cả 2 bình. Hãy tìm số bước tối thiểu để tạo được z lít này(nếu không thể tạo được thì trả về -1).

Ví dụ:

Với x=3, y=5, z=4. Đầu ra = 6.
Giải thích:

 - B1: Đổ đầy bình y, thể tích bình y: 5, x: 0

 - B2: Đổ đầy bình x từ bình y, thể tích bình y: 2, x: 3.

 - B3: Làm trống bình x, đổ bình từ bình y sang bình x, thể tích bình y:0, thể tích bình x: 2( 2 bước).

 - B4: Đổ đầy bình y, sau đó từ bình y đổ sang bình x. Lúc đó bình y sẽ có thể tích là 4 (2 bước).

Đầu vào: 3 số x, y, z
Đầu ra: Số bước tối thiểu để lấy ra z
Ví dụ:

input:
3 5 4
output:
4

Bạn chưa đăng nhập? Đăng nhập để Submit ngay!

Add a Comment