1070 结绳
Statement
Metadata
- 作者: CHEN, Yue
- 单位: 浙江大学
- 代码长度限制: 16 KB
- 时间限制: 200 ms
- 内存限制: 64 MB
给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。
给定
输入格式
每个输入包含 1 个测试用例。每个测试用例第 1 行给出正整数
输出格式
在一行中输出能够串成的绳子的最大长度。结果向下取整,即取为不超过最大长度的最近整数。
输入样例
输出样例
Solution
#include <bits/stdc++.h>
using namespace std;
#define maxn 10000
double a[maxn];
int main() {
int n, i;
cin >> n;
for (i = 0; i < n; i++) scanf("%lf", &a[i]);
sort(a, a + i);
double total = a[0];
for (i = 1; i < n; i++) total = (a[i] / 2) + (total / 2);
int num = floor(total);
printf("%d\n", num);
}
Last update: May 4, 2022