USACO 2012 - Tile Exchanging

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1300 (p) Thời gian: 4.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Farmer John muốn lát lại sàn chuồng bằng một bộ gạch vuông mà ông vừa mua từ cửa hàng Square Mart địa phương (dĩ nhiên nơi này chỉ bán các đồ vật hình vuông). Không may, trước khi mua ông đã đo sai kích thước chuồng, nên giờ ông cần đổi một số viên gạch lấy các viên gạch vuông mới có kích thước khác.

\(N\) viên gạch vuông FJ đã mua có độ dài cạnh là \(A_1 \ldots A_N\). Ông muốn đổi một số viên lấy các viên gạch vuông mới sao cho tổng diện tích của tất cả các viên gạch đúng bằng \(M\). Square Mart hiện có một ưu đãi đặc biệt: một viên gạch có độ dài cạnh \(A_i\) có thể được đổi lấy một viên gạch mới có độ dài cạnh \(B_i\) với chi phí \(|A_i-B_i| \times |A_i-B_i|\) đơn vị. Tuy nhiên, ưu đãi này chỉ áp dụng cho những viên gạch đã mua ban đầu — FJ không được phép đổi một viên gạch mà ông đã nhận được từ việc đổi một viên khác (chẳng hạn, không thể đổi một viên cạnh 3 lấy một viên cạnh 2, rồi lại đổi viên cạnh 2 ấy lấy một viên cạnh 1).

Hãy xác định số tiền ít nhất cần dùng để đổi gạch sao cho tổng diện tích các viên gạch trở thành \(M\). In \(-1\) nếu không thể đạt tổng diện tích \(M\).

Dữ liệu vào

Dòng đầu tiên chứa hai số nguyên \(N\) (\(1 \leq N \leq 10\)) và \(M\) (\(1 \leq M \leq 10\,000\)), cách nhau bởi dấu cách.

Mỗi dòng trong \(N\) dòng tiếp theo chứa một trong các số nguyên \(A_1\) đến \(A_N\), mô tả độ dài cạnh của một viên gạch đầu vào (\(1 \leq A_i \leq 100\)).

Dữ liệu ra

In chi phí nhỏ nhất để đổi gạch nhằm đạt tổng diện tích \(M\), hoặc \(-1\) nếu điều này là không thể.

Ví dụ

Ví dụ 1

Input
3 6
3
3
1
Output
5
Giải thích

Có 3 viên gạch: hai viên hình vuông cạnh 3 và một viên hình vuông cạnh 1. Ta muốn đổi chúng để có tổng diện tích bằng 6.

Đổi một viên vuông cạnh 3 lấy một viên vuông cạnh 2, và viên vuông cạnh 3 còn lại lấy một viên vuông cạnh 1. Khi đó ta có tổng diện tích mong muốn \(4+1+1=6\) với chi phí \(4+1=5\) đơn vị.

Nguồn

USACO 2011 November Contest, Silver Division — Tile Exchanging. Tác giả đề: Ray Li.

https://usaco.org/index.php?page=viewproblem2&cpid=90

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: