Advertisement

基础实验 4-2.7 修理牧场(25 分)

阅读量:

编写程序以确定将一根大木材分割成N段所需的最小费用

输入格式:

输入接着提供一个不超过10⁴的自然数_N_(其中1 ≤ N ≤ 10⁴),表示需要将木材分割成_N_段。随后给出第二行数据:共_N_个正整数(每个数值均不大于50),具体表示各段木材的长度。

输出格式:

输出一个整数,即将木头锯成 N 块的最少花费。

输入样例:

复制代码
    8
    4 5 1 2 1 3 1 1

输出样例:

复制代码
    49

代码:

复制代码
    #include<stdio.h>
    #include<algorithm>
    using namespace std;
    int main(){
    	int number,array[16384],i,answer=0,r,temp;
    	scanf("%d",&number);
    	for(i=0;i<number;i++)scanf("%d",array+i);
    	sort(array,array+number);
    	for(i=1;i<number;i++){
    		temp=array[i]+array[i-1];
    		answer+=temp;
    		for(r=i+1;r<number;r++)if(array[r]<temp)array[r-1]=array[r];
    		else break;
    		array[r-1]=temp;
    	}
    	printf("%d",answer);
    	return 0;
    }

提交结果:

在这里插入图片描述

全部评论 (0)

还没有任何评论哟~