Vụ trộm kim cương

Đề bài

Mô tả

Két sắt của ngân hàng gồm n ngăn xếp thành một hàng, đánh số từ 1 đến n từ trái sang phải. Ngăn thứ i đang chứa ai viên kim cương.

Hệ thống an ninh hoạt động như sau: cứ mỗi phút nó tính tổng số kim cương của từng cặp ngăn kề nhau, tức là n1 giá trị a1+a2, a2+a3, , an1+an. Nếu có ít nhất một tổng khác với tổng tương ứng ở lần kiểm tra trước đó thì chuông báo động kêu. Hệ thống đã thực hiện một lần kiểm tra trước khi tên trộm bắt đầu hành động.

Giữa hai lần kiểm tra liên tiếp, tên trộm thực hiện không quá m thao tác. Mỗi thao tác dưới đây được tính là một thao tác:

  • chuyển một viên kim cương từ một ngăn bất kỳ sang một ngăn khác;
  • chuyển một viên kim cương từ một ngăn vào túi của tên trộm;
  • chuyển một viên kim cương từ túi vào một ngăn bất kỳ.

Ban đầu túi rỗng và có sức chứa không giới hạn. Hiển nhiên không thể lấy kim cương ra từ một ngăn rỗng, nên số kim cương trong mỗi ngăn luôn phải không âm.

Tên trộm chỉ còn k phút trước khi trời sáng. Chuông báo động không được kêu tại bất kỳ lần kiểm tra nào, kể cả lần kiểm tra diễn ra sau khi tên trộm đã rời đi. Số kim cương còn lại trong túi chính là chiến lợi phẩm.

Hãy tính số kim cương nhiều nhất mà tên trộm có thể lấy đi.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên n, m, k.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an.

Dữ liệu ra

Một số nguyên duy nhất: số kim cương nhiều nhất tên trộm có thể lấy đi.

Ràng buộc

  • 1n104
  • 1m,k109
  • 0ai105

Ví dụ

Input Output Giải thích
2 3 1
2 3
0 Tổng a1+a2=5 phải giữ nguyên, nghĩa là tổng số kim cương trong hai ngăn luôn bằng 5. Không viên nào có thể rời khỏi két, nên túi vẫn rỗng.
3 2 2
4 1 3
2 Phút thứ nhất: chuyển một viên từ ngăn 1 sang ngăn 2, và một viên từ ngăn 3 vào túi, được 3 2 2. Các tổng kề nhau vẫn là 54. Phút thứ hai: chuyển một viên từ ngăn 3 sang ngăn 2, và một viên từ ngăn 1 vào túi, được 2 3 1. Các tổng vẫn không đổi. Tên trộm rời đi với 2 viên.

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