Rút Tiền ATM [pvhung]

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: 600 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: RATM.INP Output: RATM.OUT

Có một máy rút tiền tự động ATM, trong máy đang có tổng cộng \(K\) đơn vị tiền. Có \(N\) người (được đánh số thứ tự từ \(1\) đến \(N\)) xếp hàng để rút tiền tại máy ATM, người thứ \(i\) (\(i = 1\ldots N\)) cần rút \(A_i\) đơn vị tiền. Mọi người lần lượt vào rút tiền theo thứ tự chỉ số tăng dần (từ \(1\) đến \(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ó đủ số tiền đó. 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 đó sẽ 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, và số tiền còn lại trong máy là bao nhiêu sau khi tất cả \(N\) người đã rút tiền.

Input

  • Dòng đầu ghi hai số nguyên dương \(N, K\) (\(N < 10^5, K < 10^9\)).
  • Dòng thứ hai ghi \(N\) số nguyên không âm \(A_1, A_2,\ldots, A_N\) với mỗi \(A_i\) có giá trị không vượt quá \(10^9\).

Output

  • Dòng đầu ghi \(N\) số \(0\) hoặc \(1\). Nếu người thứ \(i\) (\(i = 1\ldots N\)) rút được tiền thì ghi số \(1\), ngược lại ghi số \(0\).
  • Dòng thứ hai ghi số tiền còn lại trong máy ATM sau khi \(N\) người rút.

Example

Test 1

Input
5 10
3 5 3 2 1
Output
11010
0

Bình luận (4)

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