Tải RAM

Xem PDF




Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 500 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Nguồn: CSP Marathon 2026 bảng THCS - Vòng 1 - Bài 1
Một ngày đẹp trời, bạn phát hiện máy tính của mình chạy chậm khủng khiếp vì sắp hết RAM. Sau một hồi tìm hiểu trên Internet, bạn biết rằng hoàn toàn có thể lên mạng tải thêm RAM.

Bạn cần tải thêm tổng cộng \(n\) GB RAM. Mỗi giây, bạn chỉ có thể tải \(0\) hoặc \(1\) GB RAM.
Tuy nhiên, giới hạn truyền tải của mạng khá oái oăm: trong bất kỳ \(k\) giây liên tiếp nào, tổng lượng RAM được tải xuống không được vượt quá \(1\) GB.
Yêu cầu: Hãy xác định số giây nhỏ nhất cần thiết để tải đủ \(n\) GB RAM.

Input

Vào từ luồng nhập chuẩn

  • Dòng đầu tiên chứa số nguyên \(t\) \((1 \le t \le 10^4)\) là số lượng bộ dữ liệu.
  • \(t\) dòng tiếp theo, mỗi dòng mô tả một bộ dữ liệu gồm một dòng chứa hai số nguyên \(n, k\) \((1 \le n, k \le 100)\), trong đó \(n\) là số GB RAM cần tải thêm.

Output

Đưa ra luồng xuất chuẩn gồm \(t\) dòng, mỗi dòng chứa một số nguyên là số giây nhỏ nhất cần thiết để tải đủ \(n\) GB RAM trong bộ test tương ứng.

Example

Test 1

Input
6
5 1
2 2
2 3
1 7
11 5
100 100
Output
5
3
4
1
51
9901
Note

Ở bộ test thứ nhất, vì \(k=1\) nên mỗi giây bạn có thể tải lên tối đa \(1\) GB. Do đó để tải lên \(5\) GB thì cần \(5\) giây.
Ở bộ test thứ hai, một cách thực hiện là tải theo đúng trình tự \(1, 0, 1\), tổng cộng được đúng \(2\) GB sau \(3\) giây.
Ở bộ test thứ ba, một cách thực hiện là tải theo đúng trình tự \(1, 0, 0, 1\), tổng cộng được đúng \(2\) GB sau \(4\) giây.

Bình luận (3)

Mới nhất
Tải bình luận...