poj 3253(水题,注意每次排序的效率)

#include<iostream>
#include<algorithm>
using namespace std;
int main(){
    long long n,data[20005],sum,tmp,t;
    scanf("%lld",&n);
    int i,j;
    for(i=0;i<n;i++){
        scanf("%lld",&data[i]);
    }
    sort(data,data+n);
    sum = 0;
    for(i=0;i<n-1;i++){
        tmp = data[i]+data[i+1];
        data[i+1] = tmp;
        sum += tmp;
        for(j=i+1;j<n-1;j++){
            if(data[j]>data[j+1]){
                t = data[j];
                data[j] = data[j+1];
                data[j+1] = t;
            }
            else{
                break;
            }
        }
    }
    printf("%lld\n",sum);
    return 0;
}

 

posted @ 2021-11-13 18:03  智人心  阅读(21)  评论(0)    收藏  举报