Gửi bài giải

Điểm: 0,30 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Problem type
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Cho giá giao dịch ~n~ ngày của bitcoin, mỗi ngày bạn có thể chọn mua 1 lần hoặc bán 1 lần hoặc không làm gì cả, việc bán và mua không diễn ra cùng 1 ngày. Để bán được bitcoin thì bạn phải mua bitcoin ở những ngày trước đó, mỗi lần mua hoặc bán bạn phải trả phí là 1% bằng số tiền bỏ vào.

Ví dụ bạn bỏ ~5000\$~ lúc mua bitcoin giá ~20\$~ và bán bitcoin ở giá ~30\$~. Thì tổng số phí phải trả là ~5000\$ \times 1\%~ (lúc mua) + ~5000\$ \times 1\%~ (lúc bán) = ~100\$~. Số tiền của bạn sau khi mua và bán là ~5000\$ \times (30\$ / 20\$) - 100\$~ (tiền phí) = ~7400\$~.

Cho trước giá giao dịch ~n~ ngày của bitcoin và số tiền ~x~ bạn hiện có, hãy tìm số tiền lớn nhất bạn có thể đạt được nếu bạn chơi một cách tối ưu.

Đáp án của bạn được coi là đúng nếu độ lệch với đáp án gốc ~\leq 10^{-5}~.

Input

  • Dòng đầu tiên là số lượng số test ~q~ (~1 \leq q \leq 10^4~), mỗi test có cấu trúc:
    • Dòng đầu tiên gồm 2 số ~n~ và ~x~ (~2 \leq n \leq 50, 1 \leq x \leq 5000~).
    • Dòng tiếp theo gồm ~n~ số ~a_1, a_2, ..., a_n~ (~20000 \leq a_i \leq 30000~).

Output

  • Gồm một dòng duy nhất là số tiền lớn nhất cần tìm.

Example Test

Input
3
2 5000
20000 30000
4 123
22000 25000 22000 30000
4 123
25000 25000 30000 30000
Output
7400.00000
5000.00000
203.27875

Bình luận

Please read the guidelines before commenting.


Không có bình luận tại thời điểm này.