1070. 结绳(25)

  1. 结绳(25)

给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。


给定N段绳子的长度,你需要找出它们能串成的绳子的最大长度。
输入格式:
每个输入包含1个测试用例。每个测试用例第1行给出正整数N (2 <= N <= 104
);第2行给出N个正整数,即原始绳段的长度,数字间以空格分隔。所有整数都不超过104

输出格式:
在一行中输出能够串成的绳子的最大长度。结果向下取整,即取为不超过最大长度的最近整数。
输入样例:8
10 15 12 3 4 13 1 15
输出样例:14
........................................................................................................
思路:只要将长的绳子对折次数最少,才能得到最大绳长,所以将每段绳子从小到大排序。

#include <iostream>
#include <algorithm>
using namespace std;

int main()
{
    int N,sum;
    cin>>N;
    int a[N];
    for(int i=0;i<N;++i){
        cin>>a[i];
    }
    sort(a,a+N);
    sum=a[0];
    for(int i=1;i<N;++i){
        sum=(sum+a[i])/2;
    }
    
    cout<<sum;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 传送门 https://pintia.cn/problem-sets/994805260223102976/pro...
    Rush的博客阅读 1,001评论 0 0
  • 我的PAT系列文章更新重心已移至Github,欢迎来看PAT题解的小伙伴请到Github Pages浏览最新内容。...
    OliverLew阅读 1,426评论 0 0
  • 第一章数和数的运算 一概念 (一)整数 1整数的意义 自然数和0都是整数。 2自然数 我们在数物体的时候,用来表示...
    meychang阅读 2,646评论 0 5
  • 文/子松 皓月闪烁在树梢 倒映着拉长身影 风在轻声呢喃 诉说着对夜色的眷恋 啊,我心爱的姑娘 你如今晚月色一般 明...
    子松Li阅读 285评论 2 2
  • 我一直向西,离开了夏尔河谷,渐渐地可以看见天空中一闪而过的飞梭,飞梭里有人,有人的地方就有故事,此刻大概能有百来个...
    框框框阅读 243评论 2 1