Giờ giới nghiêm

Đề bài

Mô tả

Một ký túc xá có n phòng xếp thành một hàng, đánh số từ 1 đến n. Theo quy định, mỗi phòng phải có đúng b học sinh ngủ lại. Tuy nhiên, vào thời điểm kiểm tra giờ giới nghiêm, phòng thứ i đang có ai học sinh. Tất cả học sinh đều đang ở trong ký túc xá, nên a1+a2++an=n·b.

Có hai giám thị đi kiểm tra. Giám thị thứ nhất bắt đầu từ phòng 1 và đi về phía phòng n, giám thị thứ hai bắt đầu từ phòng n và đi về phía phòng 1. Hai người di chuyển và kiểm tra đồng thời: ở bước thứ k, giám thị thứ nhất kiểm tra phòng k còn giám thị thứ hai kiểm tra phòng nk+1. Nếu n lẻ thì phòng ở chính giữa chỉ do giám thị thứ nhất kiểm tra. Quá trình kết thúc khi mọi phòng đã được kiểm tra.

Khi kiểm tra một phòng, giám thị đếm số học sinh đang có mặt (không tính những người đang trốn), rồi khoá phòng lại. Nếu số học sinh đếm được khác b, giám thị ghi số hiệu phòng đó vào sổ.

Trong lúc các giám thị đang kiểm tra, học sinh có thể chạy giữa các phòng chưa bị khoá và chưa bị kiểm tra. Cụ thể, quá trình diễn ra như sau:

  • Hiệu lệnh giới nghiêm vang lên, lúc này phòng iai học sinh.
  • Mỗi học sinh có thể chạy sang một phòng khác cách phòng hiện tại không quá d đơn vị (hoặc đứng yên). Sau đó mỗi học sinh có thể chui xuống gầm giường để trốn; giám thị sẽ không đếm những học sinh đang trốn. Số học sinh trốn trong một phòng là không giới hạn.
  • Hai giám thị bước vào phòng 1 và phòng n, đếm số học sinh rồi khoá phòng lại.
  • Các học sinh ở những phòng chưa bị khoá lại được chạy tiếp không quá d đơn vị và có thể trốn.
  • Hai giám thị đi sang phòng tiếp theo, và quá trình lặp lại cho tới khi hết phòng.

Gọi x1 là số phòng mà giám thị thứ nhất ghi vào sổ, x2 là số phòng mà giám thị thứ hai ghi vào sổ. Ban giám hiệu chỉ xử lý một quyển sổ duy nhất, nên các học sinh muốn giá trị max(x1,x2) càng nhỏ càng tốt.

Hãy tìm giá trị nhỏ nhất của max(x1,x2) khi các học sinh phối hợp một cách tối ưu.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên n, d, b: số phòng, khoảng cách tối đa một học sinh chạy được trong mỗi lượt, và số học sinh quy định cho mỗi phòng.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an: số học sinh đang có ở mỗi phòng trước khi có hiệu lệnh.

Dữ liệu ra

Một số nguyên duy nhất là giá trị nhỏ nhất có thể của max(x1,x2).

Ràng buộc

  • 2n100000
  • 1dn1
  • 1b10000
  • 0ai109
  • a1+a2++an=n·b

Ví dụ

Input Output Giải thích
5 1 1
1 0 0 0 4
1 Giám thị thứ nhất kiểm tra các phòng 1, 2, 3; giám thị thứ hai kiểm tra các phòng 5, 4. Ba học sinh từ phòng 5 chạy sang phòng 4, ở lượt sau hai người trong số đó chạy tiếp sang phòng 3 và một người trốn đi. Khi đó giám thị thứ nhất chỉ ghi phòng 2, còn giám thị thứ hai không ghi phòng nào, nên max(1,0)=1.
6 1 2
3 8 0 1 0 0
2 Đầu tiên toàn bộ học sinh ở phòng 1 trốn đi, còn học sinh ở phòng 2 chạy sang phòng 3. Ở lượt tiếp theo một học sinh từ phòng 3 chạy sang phòng 4 và năm người trốn đi. Giám thị thứ nhất ghi phòng 1 và 2, giám thị thứ hai ghi phòng 5 và 6, nên đáp án là 2.

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