O. Đóng gói kẹo nâng cao


Submit solution

Points: 50
Time limit: 1.0s
Memory limit: 256M

Problem type

Một nhà máy sản xuất được K viên kẹo. Lần này, nhà máy có hai loại hộp để đóng gói:
- Loại hộp nhỏ, chứa được H1 viên.
- Loại hộp lớn, chứa được H2 viên.

Nhà máy phải chọn một trong hai loại hộp này để đóng gói toàn bộ số kẹo. Giống như trước, để không lãng phí kẹo, họ sẽ sản xuất thêm một số viên để số kẹo tổng cộng vừa đủ cho loại hộp đã chọn.

Yêu cầu: Hãy giúp nhà máy tìm ra số kẹo ít nhất cần sản xuất thêm.

Dữ liệu vào:
Dòng 1: Số nguyên K (số kẹo ban đầu).
Dòng 2: Số nguyên H1 (dung tích hộp nhỏ).
Dòng 3: Số nguyên H2 (dung tích hộp lớn).

Kết quả:
In ra số kẹo ít nhất cần sản xuất thêm sau khi đã chọn loại hộp tối ưu.

Ví dụ:

Input:</p>

30
7
12

Output:

5

Gợi ý:
1. Phương án 1: Dùng hộp nhỏ (cỡ H1)

Đầu tiên, ta cần biết có bao nhiêu viên kẹo bị lẻ ra nếu chia K cho H1. Phép toán để tìm số dư này chính là phép chia lấy dư (%).

so_keo_du_1 = K % H1

Nếu so_keo_du_1 bằng 0, nghĩa là K đã chia hết cho H1. Ta không cần sản xuất thêm viên nào. Số kẹo cần thêm là 0.

Nếu so_keo_du_1 khác 0, thì so_keo_du_1 chính là số kẹo đang có trong chiếc hộp đóng gói dở dang. Để lấp đầy hộp này, ta cần thêm:

so_keo_can_them_1 = H1 - so_keo_du_1

2. Phương án 2: Dùng hộp lớn (cỡ H2)

Tương tự như trên, ta tính số kẹo dư khi chia K cho H2.

so_keo_du_2 = K % H2

Nếu so_keo_du_2 bằng 0, số kẹo cần thêm là 0.

Nếu so_keo_du_2 khác 0, số kẹo cần thêm để lấp đầy hộp lớn cuối cùng là:

so_keo_can_them_2 = H2 - so_keo_du_2

3. Lựa chọn tối ưu

Sau khi có so_keo_can_them_1 và so_keo_can_them_2, ta chỉ cần tìm giá trị nhỏ hơn trong hai số này. Đó chính là đáp án của bài toán.

ket_qua = min(so_keo_can_them_1, so_keo_can_them_2)
  


Comments

There are no comments at the moment.