pat1017 Queueing at Bank

来源:互联网 发布:电瓶车速度测试软件 编辑:程序博客网 时间:2024/05/02 01:26
#include<cstdio>#include<iostream>#include<algorithm>#include<vector>#include<queue>#include<string>#include<cstring>#include<cmath>#include<map>#define ll long longusing namespace std;const double bg = 8*60*60;const double ed = 17*60*60;double ok[105];struct node{double tm,len;}p[10005];const bool cmp(const node &a,const node &b){return a.tm<b.tm;}int main(){int n,k,i,j,a,b,c;while(scanf("%d%d",&n,&k)!=EOF){for(i = 0;i<k;i++)ok[i] = bg;double ans = 0,cnt = 0;for(i = 0;i<n;i++){scanf("%d:%d:%d %lf",&a,&b,&c,&p[i].len);p[i].tm =  double(a*60*60+b*60+c);}sort(p,p+n,cmp);for(i = 0;i<n;i++){int id;double mn = 1000000000.0;for(j = 0;j<k;j++){if(ok[j]<mn){mn = ok[j];id = j;}}if(p[i].tm>ed)break;ans+=max(0.0,mn-p[i].tm);cnt+=1;ok[id] = max(mn,p[i].tm)+p[i].len*60.0;}printf("%.1lf\n",ans/(60.0*cnt));}    return 0;}

0 0