Chú chó Cormen

Đề bài

Mô tả

Chú chó cần được dắt đi dạo đều đặn. Qua quan sát, chủ nhân nhận thấy để chú chó luôn khỏe mạnh thì tổng số lần đi dạo trong hai ngày liên tiếp bất kỳ phải ít nhất là k lần.

Chủ nhân đã lên kế hoạch cho n ngày sắp tới. Trong ngày thứ i, do các công việc thường ngày, chú chó chắc chắn được đi dạo ai lần. Chủ nhân có thể dắt chó đi dạo thêm để đáp ứng điều kiện trên.

Hãy tìm số lần đi dạo thêm ít nhất và một lịch trình phù hợp: dãy b1,b2,,bn với biai, trong đó bi là tổng số lần đi dạo trong ngày thứ i, sao cho bi+bi+1k với mọi i từ 1 đến n1.

Coi như trong ngày ngay trước ngày thứ nhất và ngày ngay sau ngày thứ n, chú chó đều được đi dạo đúng k lần (nên hai ngày biên này không tạo thêm ràng buộc nào).

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nk: số ngày và số lần đi dạo tối thiểu cho hai ngày liên tiếp bất kỳ.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an: số lần đi dạo đã có kế hoạch trong mỗi ngày.

Dữ liệu ra

  • Dòng đầu in ra số lần đi dạo thêm ít nhất.
  • Dòng thứ hai in ra n số nguyên b1,b2,,bn mô tả lịch trình tìm được (aibi với mọi i). Nếu có nhiều đáp án, in ra bất kỳ đáp án nào.

Ràng buộc

  • 1n,k500
  • 0ai500

Ví dụ

Input Output Giải thích
3 5
2 0 1
4
2 3 2
Ngày 1 và 2: 2+3=55. Ngày 2 và 3: 3+2=55. Cần thêm (30)+(21)=4 lần.
3 1
0 0 0
1
0 1 0
Chỉ cần thêm 1 lần ở ngày 2 để mọi cặp ngày liên tiếp đạt tổng 1.
4 6
2 4 3 5
0
2 4 3 5
Mọi cặp ngày liên tiếp đã có tổng 6, không cần đi dạo thêm.

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