题意:

输入两个正整数N,K(N<=10000,k<=100)分别表示用户的数量以及银行柜台的数量,接下来N行输入一个字符串(格式为HH:MM:SS)和一个正整数,分别表示一位用户到达银行的时间以及该用户占用银行资源的时间,求用户的平均等待时间。(当一位用户早于早晨八点到达银行不开门,他需要等待,当一位用户晚于下午五点到达银行关门,该用户不计入等待时间计算)【答案保留一位小数】

AAAAAccepted code:

#include<bits/stdc++.h>
using namespace std;
string s;
typedef struct{
int t,x;
}stct;
stct user[];
bool cmp(stct a,stct b){
if(a.x!=b.x)
return a.x<b.x;
return a.t<b.t;
}
int line[];
int main(){
double sum=;
int n,k;
cin>>n>>k;
for(int i=;i<=n;++i){
cin>>s>>user[i].t;
int x=;
x+=(s[]-'')*;
x+=(s[]-'')*;
x+=(s[]-'')*;
x+=(s[]-'')*;
x+=(s[]-'')*;
x+=s[]-'';
user[i].x=x;
user[i].t*=;
if(user[i].x<*){
sum+=*-user[i].x;
user[i].x=*;
}
}
sort(user+,user++n,cmp);
int cur=;
int num=;
for(int i=;i<=k;++i){
if(i>n)
break;
num=i;
line[i]=user[i].x+user[i].t;
cur=min(cur,line[i]);
}
for(int i=k+;i<=n;++i){
if(user[i].x>*)
break;
num=i;
sum+=max(,cur-user[i].x);
for(int j=;j<=k;++j)
if(line[j]==cur){
if(cur<user[i].x)
line[j]=user[i].x+user[i].t;
else
line[j]+=user[i].t;
break;
}
cur=;
for(int j=;j<=k;++j)
cur=min(cur,line[j]);
}
sum/=num;
sum/=;
printf("%.1f",sum);
return ;
}

【PAT甲级】1017 Queueing at Bank (25 分)的更多相关文章

  1. PAT 甲级 1017 Queueing at Bank (25 分)(模拟题,有点思维小技巧,第二次做才理清思路)

    1017 Queueing at Bank (25 分)   Suppose a bank has K windows open for service. There is a yellow line ...

  2. PAT甲级1017. Queueing at Bank

    PAT甲级1017. Queueing at Bank 题意: 假设一家银行有K台开放服务.窗前有一条黄线,将等候区分为两部分.所有的客户都必须在黄线后面排队,直到他/她轮到服务,并有一个可用的窗口. ...

  3. PAT 甲级 1017 Queueing at Bank

    https://pintia.cn/problem-sets/994805342720868352/problems/994805491530579968 Suppose a bank has K w ...

  4. 1017 Queueing at Bank (25 分)

    Suppose a bank has K windows open for service. There is a yellow line in front of the windows which ...

  5. PAT 甲级 1040 Longest Symmetric String (25 分)(字符串最长对称字串,遍历)

    1040 Longest Symmetric String (25 分)   Given a string, you are supposed to output the length of the ...

  6. PAT 甲级 1083 List Grades (25 分)

    1083 List Grades (25 分) Given a list of N student records with name, ID and grade. You are supposed ...

  7. PAT甲级——1130 Infix Expression (25 分)

    1130 Infix Expression (25 分)(找规律.中序遍历) 我是先在CSDN上面发表的这篇文章https://blog.csdn.net/weixin_44385565/articl ...

  8. PAT 甲级 1074 Reversing Linked List (25 分)(链表部分逆置,结合使用双端队列和栈,其实使用vector更简单呐)

    1074 Reversing Linked List (25 分)   Given a constant K and a singly linked list L, you are supposed ...

  9. PAT 甲级 1086 Tree Traversals Again (25分)(先序中序链表建树,求后序)***重点复习

    1086 Tree Traversals Again (25分)   An inorder binary tree traversal can be implemented in a non-recu ...

随机推荐

  1. javacript onclick事件中传递参数

    var user = {id:1, name:'zhangsan'}; var object = '<a onclick="conversion(' + JSON.stringify( ...

  2. Java_Habse_add

    import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hb ...

  3. Ethereum Learning Materials

    Home 注:本页为 EthFans 站内文章精选集.鉴于文章的采集范围较广,我们无法保证文章内容没有重复,也不能保证排列的顺序实现了最优的认识路径.我们只能说,这些文章是我们精挑细选后,确认可以长期 ...

  4. zookeeper 源码(二) session 和 处理事务请求

    问题 session 如何生成的?sessionId为什么不直接使用时间戳+单机名 sessionid 关闭的时候的逻辑,sessionid 的维护是由各节点还是leader ? 会话相关 sessi ...

  5. input type=range 进度条的自定义样式

    /* 自定义进度条样式 */ .v_my input[type=range] { -webkit-appearance: none;/*清除系统默认样式*/ width: .8rem; backgro ...

  6. 2.1.FastDFS-单机拆分版-调度器安装配置

    Centos610系列配置 我们在Centos610FastDFS单机模式-FastDFS安装 中已经完成了FastDFS的安装,接下来我们进行FastDFS调度器的安装. 1.找到FastDFS配置 ...

  7. JS-this的使用

    做前端开发已经半年之多了,前几天看见apply时心生疑惑,于是查阅了好多资料但还是不太理解,只知道是源于this的问题,今天偶然看到了阮一峰大佬的讲解js中的this问题(http://www.rua ...

  8. Java笔记 02-LinkedList

    介绍:List 接口的链接列表实现.实现所有可选的列表操作,并且允许所有元素(包括 null).除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get.remove 和 i ...

  9. Python web在IIS上发布方法和原理

    Python web应用想要发布使用iis发布有两种方式,这篇文章就为大家介绍一下这两种方式的具体实现: 1.配置HttpPlatform程序 HttpPlatform 模块将套接字连接直接传递到独立 ...

  10. Linux 一些有用的能力

    编程能力 Linux产生于一群真正的黑客.尽管人们习惯于认为Linus是Linux的缔造者,在linux包含的数以千计的文件中,也有一个名为Credits的文件记录了主要的Linux Hacker们的 ...