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

浙公网安备 33010602011771号