trang chủ / bài tập / garbdisp

Đổ rác

Đề bài

Mô tả

Vasya theo dõi lượng rác mình thải ra trong n ngày sắp tới: ngày thứ i anh thải ra ai đơn vị rác.

Mỗi đơn vị rác phải được vứt đi đúng trong ngày nó được thải ra, hoặc chậm nhất là ngày hôm sau. Sau ngày thứ n không được còn đơn vị rác nào.

Để vứt rác, Vasya cho rác vào túi rồi thả túi vào thùng. Mỗi túi chứa được tối đa k đơn vị rác. Trong một ngày anh có thể đóng và thả bao nhiêu túi tùy ý, túi không nhất thiết phải đầy, và một túi được phép chứa rác của hai ngày liên tiếp.

Hãy tính số túi ít nhất Vasya cần dùng để vứt hết rác của cả n ngày.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nk: số ngày và sức chứa của một túi.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an: lượng rác thải ra mỗi ngày.

Dữ liệu ra

Một số nguyên duy nhất: số túi ít nhất cần dùng.

Ràng buộc

  • 1n2·105
  • 1k109
  • 0ai109

Ví dụ

Input Output Giải thích
3 2
3 2 1
3 Ngày 1: đóng một túi đầy 2 đơn vị, giữ lại 1 đơn vị. Ngày 2: đóng một túi gồm 1 đơn vị của ngày 1 và 1 đơn vị của ngày 2, giữ lại 1 đơn vị. Ngày 3: đóng một túi gồm 1 đơn vị của ngày 2 và 1 đơn vị của ngày 3.
4 4
2 8 4 1
4 Ngày 1: giữ lại cả 2 đơn vị. Ngày 2: một túi gồm 2 đơn vị của ngày 1 và 2 đơn vị của ngày 2, thêm một túi đầy 4 đơn vị của ngày 2, giữ lại 2 đơn vị. Ngày 3: một túi gồm 2 đơn vị của ngày 2 và 2 đơn vị của ngày 3, giữ lại 2 đơn vị. Ngày 4: một túi gồm 2 đơn vị của ngày 3 và 1 đơn vị của ngày 4.
3 2
1 0 1
2 Ngày 2 buộc phải vứt đơn vị rác của ngày 1, dù chỉ đóng được một túi chứa 1 đơn vị. Đơn vị rác của ngày 3 cũng cần thêm một túi nữa vì sau ngày n không được còn rác.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.400 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0