Cut

Cut

https://ac.nowcoder.com/acm/problem/14291

很明显这道题就是一道贪心,每次切那个数值最小的就行,所以可以用sort对输入进行排序,然后每次切割前加上还剩下的数值和,直到全部分割开。


#include<iostream>
#include<queue>
#include<algorithm>
using namespace std;
int a[100005];
int main(){
    int n;
    long long sum=0,sum1=0;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        sum1+=a[i];
    }//输入数据
    sort(a+1,a+n+1);//排序
    for(int i=1;i<n;i++){
        sum+=sum1;//每次切割前加上剩余数值
        sum1-=a[i];
    }
    cout<<sum;
    return 0;
}
全部评论

相关推荐

2 收藏 评论
分享
牛客网
牛客企业服务