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; }