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

Bầu cử

Đề bài

Mô tả

n ứng cử viên tham gia một cuộc bầu cử. Ứng cử viên thứ i hiện đang nhận được ai phiếu bầu. Bạn là ứng cử viên số 1, và bạn muốn chắc chắn giành chiến thắng, tức là bạn phải có số phiếu lớn hơn thực sự số phiếu của mỗi ứng cử viên còn lại.

Để đạt được điều đó, bạn có thể "thuyết phục" cử tri của các ứng cử viên khác chuyển sang bỏ phiếu cho bạn. Mỗi lần thuyết phục thành công một cử tri, số phiếu của bạn tăng thêm 1 và số phiếu của ứng cử viên đó giảm đi 1. Bạn được phép chọn cử tri của bất kỳ ứng cử viên nào (miễn là người đó còn ít nhất một phiếu).

Hãy tính số lượt thuyết phục tối thiểu mà bạn cần thực hiện để giành chiến thắng.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n — số ứng cử viên.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an — số phiếu hiện có của từng ứng cử viên. a1 là số phiếu của bạn.

Dữ liệu ra

In ra một số nguyên duy nhất: số lượt thuyết phục tối thiểu cần thực hiện.

Ràng buộc

  • 2n100
  • 1ai1000

Ví dụ

Input Output Giải thích
5
5 1 11 2 8
4 Lấy 4 phiếu từ ứng cử viên thứ ba: số phiếu thành 9,1,7,2,8.
4
1 8 8 8
6 Lấy 2 phiếu từ mỗi ứng cử viên còn lại: 7,6,6,6.
2
7 6
0 Bạn đã thắng sẵ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.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