#include <stdio.h>
void bubblesort (int k[], int n );
int f( int k[], int n );
int main(){
int n, i, time;
while( scanf("%d",&n) == 1 ){
int k[n];
time = 0;
for( i=0; i<n; i++ ){
scanf("%d", &k[i] );
}
bubblesort( k, n ); // 把数组中的元素从 小到 大 排序;
printf("%d\n",f( k, n ));
}
return 0;
}
int f( int k[], int n ){
int time;
if( n==1 ) time = k[0];
if( n==2 ) time = k[1];
if( n==3 ) time = k[0] + k[1] + k[2];
if( n>=4 ) {
if( 2*k[1] >= k[0] + k[n-2] ) time = 2*k[0] + k[n-1] + k[n-2] + f( k, n-2 );
else time = 2*k[1] + k[0] + k[n-1] + f( k, n-2 );
}
return time;
}
void bubblesort( int k[], int n ){
int i, j, ret;
for( j=1; j<n; j++ )
for( i=0; i<n-j; i++ ){
if( k[i]>k[i+1] ){
ret = k[i];
k[i] = k[i+1];
k[i+1] = ret;
}
}
}
趣味程序设计_过桥问题
最新推荐文章于 2022-08-20 21:17:26 发布