GCD Mảng

Đề bài

Mô tả

Cho mảng a1,a2,,an. Bạn được phép áp dụng (nhiều nhất một lần mỗi loại, theo thứ tự bất kỳ) hai thao tác sau:

  1. Chọn một đoạn liên tiếp có độ dài m<n và xoá nó khỏi mảng. Chi phí bằng m·a đồng.
  2. Với một số phần tử bất kỳ còn lại, thay đổi giá trị mỗi phần tử thêm hoặc bớt đúng 1. Chi phí cho mỗi lần đổi là b đồng (mỗi phần tử có thể đổi nhiều nhất một lần).

Lưu ý: bạn không được xoá toàn bộ mảng. Mỗi thao tác được áp dụng nhiều nhất một lần (cũng có thể không áp dụng).

Hãy tính chi phí nhỏ nhất để mảng kết quả (gồm các phần tử còn lại, theo thứ tự ban đầu) có ước chung lớn nhất lớn hơn 1.

Dữ liệu vào

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

Dữ liệu ra

  • In ra một số nguyên là chi phí nhỏ nhất tìm được.

Ràng buộc

  • 1n106
  • 0a,b109
  • 2ai109

Ví dụ

Input Output Giải thích
3 1 4
4 2 3
1 Xoá phần tử 3 với chi phí 1·1=1, mảng còn lại [4,2]gcd=2.
5 3 2
5 17 13 5 6
8 Xoá đoạn [17,13] với chi phí 2·3=6, rồi giảm 6 xuống 5 với chi phí 2. Tổng chi phí 8, mảng còn lại [5,5,5]gcd=5.
8 3 4
3 7 5 4 3 12 9 4
13 Một phương án có chi phí 13 để biến mảng thành dãy có gcd>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