pat 1017. Queueing at Bank (25)
来源:互联网 发布:php implode join 编辑:程序博客网 时间:2024/04/30 06:28
queue模拟题
注意题目所求得是平均等待时间
还有 如果顾客在8点之前到达,需等到8点才能得到服务
顾客如果在17点之后到达,银行不为其提供服务,但一旦到达时间在17点之前,即使结束时间在17点之后 ,银行也要为其服务
#include<iostream>#include<queue>#include<vector>#include<algorithm>#include<stdio.h>#include<string.h>using namespace std;#define S 8*60*60#define E 17*60*60#define INF 0x7fffffffstruct node{int time;int process;int begin;int leave;};int max(int a,int b){return a>b?a:b;}int cmp(struct node a,struct node b){return a.time<b.time;}int main(){int n,k,i,h,m,s,j,min,index,t;while(scanf("%d%d",&n,&k)!=EOF){vector<struct node >cus(n);//vector<queue<int> >winque(k);vector<int>now(k,S);for(i=0;i<n;i++){scanf("%d:%d:%d%d",&h,&m,&s,&cus[i].process);cus[i].process*=60;cus[i].time=(h*60+m)*60+s;}sort(cus.begin(),cus.end(),cmp);for(i=0;i<n;i++){min=INF;for(j=0;j<k;j++)if(min>now[j]){min=now[j];index=j;}cus[i].begin=max(now[index],cus[i].time);cus[i].leave=cus[i].begin+cus[i].process;now[index]=cus[i].leave;}t=0;s=n;for(i=0;i<n;i++){//printf("%d %d %d %d\n",i,cus[i].time,cus[i].begin,cus[i].leave);if(cus[i].time<=E)// Anyone arrives early will have to wait in line till 08:00, //and anyone comes too late (at or after 17:00:01) will not be served nor counted into the average. //任何人只要在五点之前到达 银行就要为其服务{t+=cus[i].begin-cus[i].time;//printf("%d\n",t);}elses--;}if(s)printf("%.1lf\n",t/60.0/s);//求 等待 时间的平均值elseprintf("0.0\n");}return 0;}
- pat 1017. Queueing at Bank (25)
- pat 1017. Queueing at Bank (25)
- 【PAT】1017. Queueing at Bank (25)
- PAT 1017. Queueing at Bank (25)
- PAT A 1017.Queueing at Bank (25)
- PAT (Advanced) 1017. Queueing at Bank (25)
- PAT 1017. Queueing at Bank (25)
- PAT 1017. Queueing at Bank (25)
- PAT 1017. Queueing at Bank (25)
- PAT 1017. Queueing at Bank (25)
- 【PAT】1017. Queueing at Bank (25)
- PAT 1017. Queueing at Bank (25)
- 【PAT甲级】1017. Queueing at Bank (25)
- PAT甲级1017. Queueing at Bank (25)
- PAT 1017. Queueing at Bank (25)
- PAT-A-1017. Queueing at Bank (25)
- PAT甲级 1017. Queueing at Bank (25)
- PAT 甲级 1017. Queueing at Bank (25)
- MongoDB实战经验分享
- phpcmsV9 管理员密码丢失或忘记了
- Oracle 联机重做日志文件(ONLINE LOG FILE)
- map和set(关于iterator失效的问题)
- 产品经理的七种武器
- pat 1017. Queueing at Bank (25)
- Oracle 回滚(ROLLBACK)和撤销(UNDO)
- c传参引用const
- 弹性盒子
- Android优秀开源项目
- 关于Android隐式启动Activity
- java面试题系列10
- checkbox的全选操作
- Oracle 表空间与数据文件