发现自己去年竟然做过这道题
然而却十分暴力
暴力的很
却过了
//给鄙人的上古代码写注释,如有谬误,敬请谅解
#include<bits/stdc++.h>
using namespace std;
int main (){
int a[10010];//原数(自己理解一下)
int b[10010];//用于存储和的数组
memset(a,127,sizeof(a));
memset(b,127,sizeof(b));
int n,k=0,h=0,w,sum=0,n2=0;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i]; //输入
}
sort(a,a+n); //排序(可保证最小值正确)
for(int i=0;i<n-1;i++){
if(a[k]<b[h]){
w=a[k];
k++;
} //第一组判断:确定当前数组中第一个最小值
else{
w=b[h];
h++;
}
if(a[k]<b[h]){
w+=a[k];
k++;
} //第二组判断:判断第二个最小值(K or h更新过了),求和
else{
w+=b[h];
h++;
}
sum+=w; //求和
b[n2]=w; //更新B数组
n2+=1; //B 索引更新
}
cout<<sum;
return 0;
纯正暴力美学