C++ bài 13.C5: Chế biến nguyên liệu


Submit solution

Points: 20 (partial)
Time limit: 1.0s
Memory limit: 20M

Author:
Problem type

Bạn có một cái nồi và \(N\) nguyên liệu. Mỗi nguyên liệu có một tham số số thực gọi là giá trị, và giá trị của nguyên liệu thứ \(i\) \((1 \leq i \leq N)\) là \(v_i\).

Khi bạn đặt hai nguyên liệu vào nồi, chúng sẽ biến mất và tạo ra một nguyên liệu mới. Giá trị của nguyên liệu mới sẽ là \(\frac{x+y}{2}\) trong đó \(x\) và \(y\) là giá trị của các nguyên liệu bị tiêu thụ, và bạn có thể đặt nguyên liệu này lại vào nồi.

Sau khi bạn kết hợp nguyên liệu theo cách này \(N-1\) lần, bạn sẽ còn lại một nguyên liệu. Tìm giá trị lớn nhất có thể của nguyên liệu này.

Ràng buộc:

  • \(2 \leq N \leq 50\)
  • \(1 \leq v_i \leq 1000\)
  • Tất cả giá trị đầu vào là số nguyên.

ĐỊNH DẠNG ĐẦU VÀO

Đầu vào được cung cấp từ đầu vào chuẩn như sau:

N
v_1 v_2 … v_N

ĐỊNH DẠNG ĐẦU RA

In ra một số thập phân (hoặc một số nguyên) biểu thị giá trị lớn nhất có thể của nguyên liệu cuối cùng còn lại.

Kết quả của bạn sẽ được coi là đúng nếu sai số tuyệt đối hoặc tương đối so với kết quả của giám khảo không quá \(10^{-5}\).

Ví dụ:

Input
2
3 4
Output
3.5

Nếu bạn bắt đầu với hai nguyên liệu, lựa chọn duy nhất là đặt cả hai vào nồi. Giá trị của nguyên liệu tạo ra từ các nguyên liệu có giá trị \(3\) và \(4\) là \(\frac{3+4}{2}=3.5\).

In ra 3.50001, 3.49999, và các kết quả tương tự sẽ được chấp nhận.

Input
3
500 300 200
Output
375

Bạn bắt đầu với ba nguyên liệu lần này, và bạn có thể chọn nguyên liệu nào sử dụng trong lần kết hợp đầu tiên. Có ba lựa chọn khả thi:

Sử dụng các nguyên liệu có giá trị \(500\) và \(300\) để tạo ra một nguyên liệu có giá trị \(\frac{500+300}{2}=400\). Lần kết hợp tiếp theo sẽ sử dụng nguyên liệu này và nguyên liệu có giá trị \(200\), tạo ra một nguyên liệu có giá trị \(\frac{400+200}{2}=300\).

Sử dụng các nguyên liệu có giá trị \(500\) và \(200\) để tạo ra một nguyên liệu có giá trị \(\frac{500+200}{2}=350\). Lần kết hợp tiếp theo sẽ sử dụng nguyên liệu này và nguyên liệu có giá trị \(300\), tạo ra một nguyên liệu có giá trị \(\frac{350+300}{2}=325\).

Sử dụng các nguyên liệu có giá trị \(300\) và \(200\) để tạo ra một nguyên liệu có giá trị \(\frac{300+200}{2}=250\). Lần kết hợp tiếp theo sẽ sử dụng nguyên liệu này và nguyên liệu có giá trị \(500\), tạo ra một nguyên liệu có giá trị \(\frac{250+500}{2}=375\).

Vì vậy, giá trị lớn nhất có thể của nguyên liệu cuối cùng còn lại là \(375\).

In ra 375.0 và các kết quả tương tự sẽ được chấp nhận.

Giải thích ví dụ mẫu
  • Ví dụ 1:

    2 3 4

    Giải thích: Chỉ có một cách kết hợp duy nhất, kết quả là 3.5.

  • Ví dụ 2:

    3 500 300 200

    Giải thích: Có nhiều cách kết hợp khác nhau, cách tối ưu nhất cho giá trị cuối cùng là 375.


Lời giải bài tập này: Tại đây

Group giải đáp thắc mắc: Lập trình 24h

Fanpage CLB: CLB lập trình Full House- Việt Nam

Youtube: CLB Lập Trình Full House


Comments

There are no comments at the moment.

Zalo