Xếp hàng lấy nước

Đề bài

Mô tả

Một toa tàu có n ghế, đánh số từ 1 đến n từ trái sang phải, mỗi ghế có đúng một hành khách. Chuyến đi dài, nên đến một lúc nào đó mỗi hành khách sẽ thấy đói và đi lấy nước sôi để pha mì. Hành khách ở ghế i quyết định đi lấy nước tại phút ti.

Bình nước sôi đặt ở bên trái ghế số 1. Mỗi lần chỉ có một người dùng được bình nước, và mỗi người dùng bình trong đúng p phút. Nếu nhiều người cùng muốn lấy nước, họ sẽ xếp thành một hàng chờ. Thời gian đi từ ghế đến bình nước xem như bằng 0.

Không ai thích phải đứng xếp hàng. Vì vậy khi hành khách ở ghế i muốn đi lấy nước, trước tiên anh ta nhìn tất cả các ghế từ 1 đến i1. Nếu có ít nhất một ghế trong số đó đang trống, anh ta cho rằng những người đó đang đứng xếp hàng, nên tạm thời ngồi lại chỗ. Chỉ tại thời điểm đầu tiên anh ta thấy tất cả các ghế có số nhỏ hơn i đều đang có người ngồi, anh ta mới đi ra bình nước (một ghế được coi là trống khi người của ghế đó đang rời chỗ để xếp hàng hoặc đang dùng bình nước).

Có một luật ngầm: nếu tại cùng một thời điểm có nhiều người có thể đi ra bình nước, thì chỉ người ở ghế trái nhất (số ghế nhỏ nhất) mới đi, những người còn lại chờ đến thời điểm tiếp theo.

Hãy tìm, với mỗi hành khách, thời điểm anh ta nhận được nước sôi (thời điểm dùng xong bình nước).

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên np: số hành khách và thời gian một người dùng bình nước.
  • Dòng thứ hai chứa n số nguyên t1,t2,,tn: thời điểm mỗi hành khách muốn đi lấy nước.

Dữ liệu ra

In ra n số nguyên, số thứ i là thời điểm hành khách ở ghế i nhận được nước sôi.

Ràng buộc

  • 1n100000
  • 1p109
  • 0ti109

Ví dụ

Input Output Giải thích
5 314
0 310 942 628 0
314 628 1256 942 1570 Tại phút 0 có hai người muốn đi: người 1 và người 5. Người 1 (trái nhất) đi trước, dùng bình từ 0 đến 314. Khi đó người 2 (đói từ phút 310) đi tiếp: 314628. Người 4 đói từ 628: 628942. Người 3 đói từ 942: 9421256. Cuối cùng người 5 mới thấy các ghế 1..4 đều có người: 12561570.
4 3
3 2 1 0
12 9 6 3 Người 4 đói ngay phút 0; các ghế 1,2,3 đều đang có người (họ chưa đói) nên người 4 đi trước: 03. Người 3 đói phút 1 chỉ nhìn ghế 1,2 (đang có người) nên vào hàng, dùng bình 36. Tương tự người 2: 69, người 1: 912.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0