1319:【例6.1】排队接水 2020-11-30

简介: 1319:【例6.1】排队接水 2020-11-30

1319:【例6.1】排队接水

时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小。

【输入】

共两行,第一行为n(1≤n≤1000);第二行分别表示第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. #include <iostream>
2. #include <cstdio>
3. #include <algorithm>
4. using namespace std;
5. struct water{
6.  int time;
7.  int num;
8.  friend bool operator < (water a,water b){
9.    return a.time<b.time;
10.   }
11. }s[1005];
12. int main(int argc, char *argv[])
13. {
14.   int n;
15.   scanf("%d",&n);
16.   for(int i=1;i<=n;i++){
17.     scanf("%d",&s[i].time);
18.     s[i].num=i;
19.   }
20.   sort(s+1,s+n+1);
21.   int sum=0,tmp=0;
22.   for(int i=1;i<n;i++){
23.     printf("%d ",s[i].num);
24.     tmp+=s[i].time;
25.     sum+=tmp;
26.   }
27.   printf("%d",s[n].num);
28.   printf("\n%.2f\n",sum*1.0/n);
29.   return 0;
30. }

 

相关文章
|
9月前
|
Java
提交任务时,线程池队列已满,这时会发生什么
提交任务时,线程池队列已满,这时会发生什么
|
人工智能 图形学
UnityAI——排队过窄洞
UnityAI——排队过窄洞
103 0
UnityAI——排队过窄洞
|
9月前
|
消息中间件 数据库
七、延时队列
七、延时队列
97 0
|
9月前
|
Linux
4.4、 Linux进程排队
4.4、 Linux进程排队
83 0
|
Java
面试官:说一下线程池的状态以及线程池中空闲的线程的状态
面试官:说一下线程池的状态以及线程池中空闲的线程的状态
1284 0
|
存储 缓存 Java
JAVA多线程 | 实现用户任务排队 | 预估排队时长
JAVA多线程 | 实现用户任务排队 | 预估排队时长
452 0
使用ThreadPoolExecutor,当提交线程超过maximumPoolSize 会阻塞主线程吗?
使用ThreadPoolExecutor,当提交线程超过maximumPoolSize 会阻塞主线程吗?
205 0
使用ThreadPoolExecutor,当提交线程超过maximumPoolSize 会阻塞主线程吗?
|
C++
201703-2 学生排队
201703-2 学生排队
67 0
201703-2 学生排队
小白鼠排队
小白鼠排队
165 0