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

Gửi kẹo cho Alice

Đề bài

Mô tả

n chiếc hộp xếp thành một hàng, đánh số từ 1 đến n. Ban đầu hộp thứ i chứa ai viên kẹo. Đảm bảo có ít nhất một hộp chứa số kẹo dương.

Trong một giây, ta có thể lấy một viên kẹo từ hộp i và chuyển sang hộp i1 hoặc hộp i+1 (nếu hộp đó tồn tại).

Ta muốn tồn tại một số nguyên k>1 sao cho số kẹo trong mỗi hộp đều chia hết cho k (một hộp rỗng, tức chứa 0 viên, luôn được coi là chia hết cho k).

Hãy tính số giây ít nhất cần thực hiện để đạt được mục tiêu trên. Nếu không có cách nào, in ra 1.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n là số hộp kẹo.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an là số kẹo trong mỗi hộp.

Dữ liệu ra

  • In ra một số nguyên là số giây ít nhất cần thiết, hoặc 1 nếu không thể.

Ràng buộc

  • 1n106
  • 0ai106
  • Có ít nhất một ai dương.

Ví dụ

Input Output Giải thích
3
4 8 5
9 Chuyển toàn bộ kẹo về hộp thứ hai. Khi đó mỗi hộp chia hết cho 17. Tổng chi phí là 9 giây.
5
3 10 2 1 5
2 Chuyển một viên từ hộp 2 sang hộp 3 và một viên từ hộp 4 sang hộp 5. Khi đó mỗi hộp chia hết cho 3.
4
0 5 15 10
0 Mỗi hộp đã chia hết cho 5 nên không cần di chuyển.
1
1
-1 Chỉ có một hộp và không thể di chuyển kẹo đi đâu, nên không có k>1 nào chia hết được số 1.

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