Điểm:
200
Thời gian:
2.0s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
-
Cho một mảng ban đầu rỗng và có sức chứa tối đa là \(C\).
-
Cho \(N\) phần tử có giá trị bằng nhau.
-
Tiếp theo, ta lặp lại quá trình dưới đây cho đến khi \(N\) phần tử được đưa hết vào mảng thì dừng:
-
Nếu mảng chưa bị tràn, thêm vào mảng một phần tử, việc này tốn \(1\)VND (Việt Nam Đồng)
-
Nếu mảng bị tràn, thay mảng cũ bằng mảng mới có sức chứa gấp đôi mảng cũ, việc này không tốn chi phí
-
Sao chép từng phần tử của mảng cũ sang mảng mới, mỗi phần tử tốn \(1\) VND
Để hiểu rõ hơn quá trình trên, ta có thể xem ví dụ dưới đây:
- Giả sử ta có \(C=1\) và \(N=3\), khi đó quá trình sẽ diễn ra như sau:
Hành động | Sức chứa | Số lượng phần tử hiện tại | Chi phí |
---|---|---|---|
Bắt đầu | C = 1 | 0 | 0 |
Thêm | C = 1 | 1 | 1 |
Thêm | Tràn mảng | ||
Đổi mảng | C = 2 | 0 | 0 |
Sao chép | C = 2 | 1 | 1 |
Thêm | C = 2 | 2 | 1 |
Thêm | Tràn mảng | ||
Đổi mảng | C = 4 | 0 | 0 |
Sao chép | C = 4 | 2 | 2 |
Thêm | C = 4 | 3 | 1 |
Vậy tổng chi phí để đưa \(N\) phần tử vào mảng là \(1+1+1+2+1=6\) VND
Yêu cầu: Cho hai số \(C\) và \(N\). In ra tổng chi phí để đưa \(N\) phần tử vào mảng.
Input
- Một dòng duy nhất chứa hai số nguyên \(C,N(1\le C\le 1000,0\le N\le 5.10^8)\)
Output
- In ra kết quả cần tìm
Example
Test 1
Input
1 3
Output
6
Bình luận