
#include
#define N 4
main ()
{
int i,j,t,s,p,time=0,mintime;
int x[N]={10,5,2,1};
for (i=0;i
t=x[i];
x[i]=x[j];
x[j]=t;
}
for (i=0;i<念团敏N;i++) /*显示排好的顺序*/
printf("x[%d]=%d\n",i,x[i]);
printf("\n");
p=N/2; /*数组元素的或派对数*/
s=N%2;
for (j=0;j {
time=time+x[j];
j++;
}
if (s==0) /*数组元素为偶数个仔枝*/
mintime=time+p*x[N-2]+(p-1)*x[N-2]+(p-1)*x[N-1];
else /*数组元素为奇数个*/
mintime=time+p*x[N-2]+(p-1)*x[N-2]+(p-1)*x[N-1]+x[N-3]; /*加上倒数第三个数*/
printf("mintime=%d\n",mintime);
getch();
}
好难找的!!!
先2分钟和1分钟的旅改过拆手判去,1分钟带着电筒返回
再5分钟和1分钟的过去,1分钟带着电筒返回
再10分钟和1分钟的过去
一共用19分钟,所以程薯悔序是
int main()
{
printf("19min\n");
return 0;
}
构造一个状态集吧。然后搜索花费最少的~