思路
每两条绳子折叠并为一条绳子的时候,长度折半,为了得到最长的绳子,需要先从小到大排序,由最短的向最长的折叠。
代码
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
double a[n];
for(int i = 0;i < n;i++)
scanf("%lf",&a[i]);
sort(a,a+n);
double sum = a[0];
for(int i = 1;i < n;i++)
{
sum = (sum+a[i])/2.0;
// cout << sum << endl;
}
printf("%d",(int)sum);
}