怎样做排队节水的题目?【问题描述】有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一

怎样做排队节水的题目?
【问题描述】
有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小.
【输入格式】
输入文件共两行,第一行为n(0≤n≤200);第二行分别表示第1个人到第n个人每人的接水时间T1,T2,…,Tn,每个数据之间有1个空格.
【输出格式】
输出文件有两行,第一行为一种排队顺序,即1到n的一种排列;第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位).
输入样例:10
56 12 1 99 1000 234 33 55 99 812
输出样例:3 2 7 8 1 4 9 6 10 5
291.90
娃娃脸能做女强人 1年前 已收到1个回答 举报

catnero 幼苗

共回答了24个问题采纳率:100% 举报

很简单,用二维数组,a[n][2],
a[i][0]中存放Ti,在令a[i][1]=i;
在把a[i][0]按从小到大的顺序排序,当然a[i][1]中的内容也要跟着调换.
输出时顺序输出a[i][0]的内容就行了,
至于时间,第一个为零,第一个打水时间就是第二的等待时间,前两个打水时间和就是第三个等待时间,·····
前九个打水时间和就是第十个等待时间,
这十个等待时间相加除以10,就是平均等待时间
代码你就自己写吧
很简单的

1年前

2
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.032 s. - webmaster@yulucn.com