Bài 1: Thanh gỗ (TS10 Hưng Yên 2026)

Xem PDF



Tác giả:
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, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 600 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Một công ty sản xuất nội thất có \(n\) đội, đội thứ \(i\) đang cần các đoạn gỗ độ dài \(a_i\) để lắp ghép. Công ty sẽ đặt hàng các thanh gỗ dài cùng kích thước để có thể phù hợp với tất cả các đội.

Thanh gỗ dài phù hợp với đội \(i\) nếu có thể cắt thanh gỗ dài đó thành các đoạn có độ dài bằng \(a_i\) để sử dụng mà không thừa bất cứ khúc nào. Để dễ dàng vận chuyển, giám đốc công ty muốn độ dài thanh gỗ đặt hàng về là ngắn nhất có thể.

Yêu cầu: Cho biết \(n\) và các giá trị \(a_1, a_2, \dots, a_n\). Hãy tính độ dài ngắn nhất của thanh gỗ phù hợp với tất cả các đội được công ty đặt hàng về.

Input

  • Dòng đầu tiên chứa số nguyên dương \(n\) (\(2 \le n \le 6\)).
  • Dòng thứ hai chứa \(n\) số nguyên dương \(a_1, a_2, \dots, a_n\) (\(a_i \le 1000\) với mọi \(i = 1, 2, \dots, n\)).

Output

  • Một số nguyên duy nhất là độ dài thanh gỗ ngắn nhất tìm được.

Example

Test 1

Input
2
5 6
Output
30
Note

Có 2 đội, đội thứ nhất cần các đoạn gỗ độ dài \(5\), đội thứ hai cần các đoạn gỗ độ dài \(6\). Độ dài thanh gỗ thích hợp là \(30\). Một thanh gỗ đội thứ nhất có thể cắt thành \(6\) đoạn, đội thứ hai có thể cắt thành \(5\) đoạn mà không dư thừa bất cứ khúc gỗ nào.

Test 2

Input
3
2 10 4
Output
20

Scoring

  • Subtask \(1\) (\(40\%\) số điểm): \(n = 2\)\(a_i \le 2\).
  • Subtask \(2\) (\(40\%\) số điểm): \(n \le 3\).
  • Subtask \(3\) (\(20\%\) số điểm): Không có ràng buộc bổ sung.

Bình luận (1)

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

Kỳ thi: