Rút tiền ATM

Xem dạng PDF

Gửi bài giải

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

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Python
Rút tiền ATM
Mô tả và yêu cầu

Có một máy rút tiền tự động ATM, trong máy đang có tổng cộng 𝐾 đơn vị tiền. Có 𝑁 người
(được đánh số thứ tự từ 1 đến 𝑁) xếp hàng để rút tiền tại máy ATM, người thứ 𝑖 (𝑖 = 1. .𝑁) cần
rút 𝑎𝑖 đơn vị tiền.
Mọi người lần lượt đi vào rút tiền, theo thứ tự chỉ số tăng dần. Khi có một người vào rút
tiền, máy ATM sẽ trả lại đúng số tiền mà người đó cần rút nếu máy có tối thiểu số tiền của
người cần rút, trong trường hợp ngược lại máy sẽ báo lỗi và không đưa tiền. Sau khi rút tiền
(cho dù có nhận được tiền hay không) người đó ngay lập tức rời khỏi hàng để người tiếp theo
vào rút tiền.
Yêu cầu: Đối với mỗi người, hãy cho biết người đó nhận được số tiền cần rút hay không?

Dữ liệu vào

+ Dòng đầu tiên ghi 2 số nguyên dương 𝑁 và 𝐾 (1 ≤ 𝑁 ≤ 105; 1 ≤ 𝐾 ≤ 109).
+ Dòng thứ 2 lần lượt ghi 𝑁 số nguyên dương 𝑎1, 𝑎2, … ,𝑎𝑁 (1 ≤ 𝑎𝑖 < 109; 𝑖 = 1. .𝑁)

Dữ liệu ra

Ghi một dòng duy nhất chứa 𝑁 chữ số liên tiếp nhau trong đó nếu người thứ 𝑖 nhận được
tiền cần rút thì số thứ 𝑖 ghi 1, ngược lại nếu người thứ 𝑖 không nhận được số tiền cần rút thì chữ
số thứ 𝑖 ghi 0.

Ví dụ
Input                      output
                              5 10                        11010
                              3 5 3 2 1
    Giải thích
    Máy ATM ban đầu có 10 đơn vị tiền. Người thứ nhất đến và rút 3 đơn vị nên trong máy còn
lại 7 đơn vị tiền, người thứ 2 đến rút 5 đơn vị nên trong máy còn lại 2 đơn vị tiền, người thứ 3
không rút được tiền (vì cần rút 3 đơn vị tiền mà trong máy chỉ còn 2 đơn vị tiền), người thứ 4
rút 2 đơn vị tiền nên trong máy còn 0 đơn vị tiền, người thứ 5 không rút được tiền (vì cần rút 1
đơn vị tiền mà trong máy hết tiền).

Tải PDF gốc


Bình luận

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


Không có bình luận tại thời điểm này.