#include<cstdio>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<string>
#include<cstring>
#include<cmath>
#include<map>
#define ll long long
using 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;
}
pat1017 Queueing at Bank
最新推荐文章于 2022-05-21 13:19:29 发布