中易网

求c语言过桥问题最后要输出走法的代码怎么写

答案:2  悬赏:70  
解决时间 2021-03-04 00:30
在漆黑的夜里,n位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥去的。不幸的是,他们一共只带了一只手电筒,而桥窄得只够让两个人同时过。如果各自单独过桥的话,每人所需要的时间分别是a1、a2、...an分钟;而如果两人同时过桥,所需要的时间就是走得比较慢的那个人单独行动时所需的时间。问题是,如何设计一个方案,让这些人尽快过桥。
Input
输入分2行
第一行是一个整数n(1<=n<=1000)
第二行是n个整数,分别表示这n个人单独过桥需要的时间
Output
输出2行:
第一行,他们过桥需要的总时间。
第二行,他们的走法。
input as:
8
1 2 3 6 8 12 9 4

output as:
time:
left right
(1 2 Cross) <----
(1 back) ---->
(9 12 Cross ) <----
(2 back) ---->
(1 2 Cross) <----
(1 back) ---->
(6 8 Cross) <----
……
最佳答案
#include 
#include 
typedef struct people
{
int index;
int time;
int wei;//0为没过河,1为过河
}PEO;

void paixu(PEO a[],int n)
{
int i, j;
PEO t;
for (i = 0; i for (j = 0; j if (a[j].time>a[j + 1].time)
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
int main()
{
int  n, total=0 ,i;
PEO *a;
scanf("%d", &n);
a = (int*)malloc(n*sizeof(PEO));
for (i = 0; i < n; i++)
{
scanf("%d", &(a[i].time));
a[i].index = i + 1;
a[i].wei = 0;
}
paixu(a, n);
for (;n>0;)
{
if (!a[0].wei&&!a[1].wei)
{
printf("(%d %d Cross)      <----\n", a[0].index, a[1].index);
a[0].wei = 1; a[1].wei = 1; n = n - 2;
total += a[1].time;
}
else if (a[0].wei)
{
printf("(%d back)           ---->\n", a[0].index);
a[0].wei = 0; n = n + 1;
total += a[0].time;
}
else if (n == 2)
{
printf("(%d %d Cross)      <----\n", a[0].index, a[n].index);
total += a[n].time;
break;
}
else 
{
printf("(%d %d Cross)      <----\n", a[n-1].index, a[n].index);
printf("(%d back)           ---->\n", a[1].index);
total += a[1].time + a[n].time;
a[1].wei = 0; n = n - 1;
}}
printf(" time:%d", total);
system("pause");
return 0;
}//先算时间的话我规律找不到(⊙﹏⊙)b
全部回答
同问。。。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
请安装造价大神给我一本《一图一算之安装造价
今天吃的油的东西太多啦,喝茶叶水能去油脂吗?
我花39元买的亚马逊prime去哪儿了
请问从上海市宝山到浙江衢州江朗山有多少公里
凤凰山1号中桥在什么地方啊,我要过去处理事
Linda这个名字来历
益智学托地址在什么地方,想过去办事
红薯是喜阴还是喜阳植物
酪浓奶食店在什么地方啊,我要过去处理事情
我是专科生,已工作一年有余,请问是否还有必
14年好玩的卡牌游戏都有哪些啊?
支支花发黄花叶子发黄是什么原因
联发·江岸汇景南门(人行门)我想知道这个在什
什么是“间伐”?
网线没问题,电脑为什么上不了网。接口处的等
推荐资讯
句容市大卓中学地址好找么,我有些事要过去
中国八大国营商场都有谁?
捂黄豆捂出黑毛还能下酱吗?
健步走带几公斤的哑铃
东营水库地址在哪,我要去那里办事
本来茶馆地址有知道的么?有点事想过去
梦见牙里面藏针
安捷装卸搬运服务部怎么去啊,有事要去办理
利安社区电超市华凌营业厅在哪里啊,我有事要
铲车打火发动机有种转不动的感觉怎么回事
家居中什么植物比较好?
如何将不能打印的PDF文件变成可打印的
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?