GHÉP HÌNH

\(n\) tấm ván đều có chiều rộng là 1. Các tấm ván được đánh số thứ tự từ 1 đến \(n\), chiều dài tấm ván thứ \(i\)\(a_{i}\). Người ta muốn ghép các tấm ván này thành một bàn hình vuông với diện tích lớn nhất có thể mà không sử dụng các đoạn sau khi cắt bỏ hoặc quay ngang tấm ván. Cho biết độ dài của \(n\) tấm ván.

Yêu cầu: Em hãy viết chương trình tìm kích thước hình vuông có diện tích lớn nhất.

Dữ liệu vào:

- Dòng đầu tiên là số nguyên dương \(n\)

- Dòng thứ 2 là dãy số nguyên dương độ dài các tấm ván: \(a_{1},a_{2},\ldots a_{n}\ (n \leq 10^{6},\ 0 < a_{i} \leq 10^{6})\)

Kết quả:

+ Một số duy nhất là kích thước của mặt bàn hình vuông lớn nhất.

Ví dụ:

Input Output Giải thích
5
4 3 1 4 5
3 Chọn 3 tấm có độ dài 4, 3, 5 để ghép thành hình vuông 3x3
4
4 4 4 4
4 Có 4 tấm ván độ dài 4 nên ta ghép được hình vuông 4x4 và không có ván thừa.
3
1 1 1
1 Có 3 tấm độ dài 1 nên ta chỉ có thể chọn 1 tấm để ghép 1x1
5
5 5 1 1 5
3 Chọn 3 tấm độ dài 5 để ghép thành hình vuông 3x3

Ràng buộc:

- Có 75% số điểm với \(n \leq 10^{3}\)

- Có 25% số điểm còn lại \(n \leq 10^{6}\ \).

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. npk1605 (5/10)
  2. tuythoi213 (4/6)
  3. bao_khanh (2/3)
Trong 7 ngày
  1. nguyenanhvu (40/64)
  2. khieuquan (35/59)
  3. ngokhang (27/55)
Trong 30 ngày
  1. quechi (85/105)
  2. dangphong3108 (79/125)
  3. kiennhientv (79/179)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38905

Lưu Hải Phong - 2020
[email protected]