PTIT052 - Bobs, Alice và cửa hàng thuốc

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift

Bob rất thích Alice bời vì cậu ấy là một người nghiện thuốc lá và cửa hàng Alice thì có qui định bán thuốc tuyệt vời.

Tiệm thuốc lá nhà Alice có chương trình khuyến mại cứ ~k~ vỏ bao thuốc lá sẽ đổi lại một bao thuốc mới.

Bắt đầu từ ngày 1. Bobs có ~n~ bao thuốc lá, mỗi ngày anh ta sẽ hút chỉ 1 bao thuốc. Alice tự hỏi không biết sau bao nhiêu ngày thì Bobs không còn bao thuốc nào để hút.

Input

1 dòng duy nhất gồm 2 sô nguyên ~n, k ~.

Giới hạn:

  • ~1\le n \le 10^6 ~
  • ~2\le k \le 10^6~

Output

1 dòng duy nhất chứa kết quả bài toán.

Sample

Input #1
4 3
Output #1
5
Input #2
10 3
Output #2
14

Hint

Bobs có thể mang vỏ bao đi đổi lấy bao thuốc mới.

Giải thích test 1:

Bobs hút thuốc 4 ngày hết 4 bao thuốc.Sau đó anh ta đem 4 vỏ bao đi đổi lấy 1 bao mới.Đến ngày thứ 5, Bobs không thể có thêm thuốc.

Nhận xét: Bobs có thể đổi thuốc vào bất kì thời điểm nào anh ta muốn chỉ cần có đủ vỏ thuốc

Problem source: CLB Lập Trình PTIT


Bình luận

Hãy đọc nội quy trước khi bình luận.



  • -1
    nhantrong  đã bình luận lúc 9, Tháng 3, 2024, 8:43

    include <iostream>

    using namespace std;

    int main() { long long n, k; cin >> n >> k;

    long long total_days = n; // Số ngày ban đầu Bob có bao thuốc là n
    
    // Dùng vòng lặp để tính số ngày Bob sẽ không còn bao thuốc nào để hút
    while (n >= k) {
        long long new_cigarettes = n / k; // Số bao thuốc mới nhận được từ chương trình khuyến mại
        total_days += new_cigarettes; // Cộng số ngày cần để hút các bao thuốc mới nhận được
        n = new_cigarettes + (n % k); // Tính lại số bao thuốc Bob còn lại sau khi đổi và hút
    }
    
    cout << total_days << endl; // In ra số ngày Bob không còn bao thuốc nào để hút
    return 0;
    

    }