首页 > 学院 > 开发设计 > 正文

P1223 排队接水

2019-11-14 09:04:48
字体:
来源:转载
供稿:网友

题目描述

有n个人在排队接水,每个人接水的时间为Ti,使得n个人的排队平均等待时间最小。

样例输入

10 56 12 1 99 1000 234 33 55 99 812

样例输出

3 2 7 8 1 4 9 6 10 5291.90

思路

O(n^2)很容易就看出时间短的排在前面平均等待时间就越小,数据又不大,冒泡排序,时间累加起来除以人数,就是平均等待时间了。var i,j,k,n:longint; l,t:int64; a,b:array[1..50000] of longint;begin readln(n); for i:=1 to n do begin read(a[i]); b[i]:=i; end; for i:=1 to n-1 do for j:=i+1 to n do if a[i]>a[j] then begin k:=a[i];a[i]:=a[j];a[j]:=k; k:=b[i];b[i]:=b[j];b[j]:=k; end; t:=a[1]; for i:=2 to n do begin l:=l+t; t:=t+a[i]; end; for i:=1 to n do write(b[i],' '); writeln; writeln(l/n:0:2);end.
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表