[COCI2011-2012#5] BLOKOVI
题目描述
平面直角坐标系种有 N N N 个质量为 m i m_{i} mi ,长为 2 2 2,高为 h h h 的矩形,使得:
- 矩形的边缘与坐标轴平行;
- 矩形的下层与 y y y坐标不重合,且为以下值: 0 , h , 2 h , 3 h , … , ( N − 1 ) h 0,h,2h,3h,\dots,(N-1)h 0,h,2h,3h,…,(N−1)h;
- 最低的矩形左下角的坐标为 ( − 2 , 0 ) (-2,0) (−2,0),右下角与原点重合。
定义一个矩阵的 X 中心是其下边的中点的 X 坐标。一个或多个矩形的 X 中心是其 X 中心的加权平均值。它的计算方法为:
X b a r y c e t r e = ∑ i m i × X c e n t r e ( i ) ∑ i m i Xbarycetre=\frac{\sum_{i}m_{i}\times Xcentre(i)}{\sum_{i}m_{i}} Xbarycetre=∑imi∑imi×Xcentre(i)
其中 Xbarycetre
表示一个或多个矩形的 X 中心,Xcentre
表示一个矩阵的 X 中心。
换句话说,其值为每个矩形的质量乘以它的 X 中心之积除以矩形的总质量。
对于每一个矩形,如果它上面的矩形的 X 中心与其的 X 中心的距离小于等于 1 1 1,则称这些矩形组成的排列是稳定的。
例如,左图的排列是不稳定的,因为上面两个矩形的 X 中心到下面的矩形的X中心的距离大于 1 1 1。而右图的排列是稳定的。
给出所有矩形的质量,求其可以组成的稳定排列中的矩形的最大 X 坐标。
你不能改变矩形的顺序,它们从基本低到高给出。
输入格式
第一行,一个整数 N N N,表示矩形的数量。
接着 N N N 行,每行一个整数 m i m_{i} mi,表示第 i i i 个矩形的质量。
输出格式
一行,一个小数,表示答案,答案在 0.000001 0.000001 0.000001 的误差内均为正确。
样例 #1
样例输入 #1
2
1
1
样例输出 #1
1.00000000
样例 #2
样例输入 #2
3
1
1
1
样例输出 #2
1.50000000
样例 #3
样例输入 #3
3
1
1
9
样例输出 #3
1.90000000
提示
有 30 % 30\% 30% 的数据,矩形的质量从大到小给出。
2 ≤ N ≤ 3 × 1 0 5 2\le N\le 3\times 10^{5} 2≤N≤3×105, 1 ≤ m i ≤ 1 0 4 1\le m_{i}\le 10^{4} 1≤mi≤104。
题目译自 COCI 2011/2012 #5 T5。
Scratch实现
后续
接下来我会不断用scratch来实现信奥比赛中的算法题、Scratch考级编程题实现、白名单赛事考题实现,感兴趣的请关注,我后续将继续分享相关内容