题目描述:
过桥问题。有N(N≥2)个人在晚上需要从X地到达Y地,中间要过一座桥,过桥需要手电筒(而他们只有1个手电筒),每次最多两个人一起过桥(否则桥会垮)。N个人的过桥时间依次存入数组t[N]中,分别为:t[0],
t[1], ……, t[N-1]。过桥的速度以慢的人为准!注意:手电筒不能丢过桥!问题是:编程求这N个人过桥所花的最短时间。
输入:
有多组测试数据,
每组数据先输入一个人数N,然后输入这N个人过桥所花的时间。
输出:
输出对应的最短时间。
样例输入 :
4 1 2 5 10
4 5 2 10 1
样例输出:
17
17
源代码:
#include <stdio.h>
#include <stdlib.h>
void paixun(int time[],int N);//冒泡排序对时间排序
int guoqiao(int time[],int N);//当2*T次快>=T最快+T次慢时,T最慢+T最快+T次慢+T最快//当2*Tck<Tzk+Tcm时,Tck+Tzk+Tzm+Tck
int main()
{
int N;
int time[100];
int zong;//总时间
while(scanf("%d",&N)!=EOF)
{
for(int i=0; i<N; i