1709 放气球


Submit solution

Points: 100
Time limit: 1.0s
Memory limit: 32M

Problem types
Allowed languages
C, C++, Java, Python

Description

大家都知道ACM比赛的时候都是要发气球的,所以一般赛前都要准备很多气球放到一张长方形桌子上。现在已知准备要吹n只气球,气球可能大小不同但一定是圆形。然后一个一个按题目所给顺序依次放到一张宽为w的桌子上,每次放的时候,先尽可能靠向长为w的底边,再尽可能向左。为了使题目更加简单,可以把所有球看作为二维,只要球的重心在桌上则就算放在桌子上。

问这张桌子至少要多长才能把所有气球都放在桌子上。

Input

包含多组测试数据。每组数据先输入两个整数w,n(n<=30),然后输入n个整数d1,d2, … ,dn表示n个气球的直径。

Output

对于每组数据 输出桌子最小应该多少长才能放下所有气球,保留两位小数。

Sample

Input

1 3 5 2 3 
3 2 5 5 
5 3 10 2 4 
9 3 4 4 6 
10 6 5 4 6 3 5 2

Output

5.65
4.00
5.99
0.00
4.52

Source: xenocide


Comments

There are no comments at the moment.