1014:
排队服务问题,队列实现。
注意条件控制。
#include <iostream>
using namespace std;
#include<queue>
#include<map>
#include<stdio.h>
struct People
{
int id;
int cost;
bool start;
};
queue<People> q[30];
queue<People> wait;
map<int,int> finish;
void format(int n)
{
if(n<0)
printf("Sorry\n");
else
printf("%02d:%02d\n",8+n/60,n%60);
}
int main()
{
int win;
int cap;
int num;
int ask;
int id;
cin>>win;
cin>>cap;
cin>>num;
cin>>ask;
for(int i=1;i<=num;i++)
{
People p;
p.id = i;
p.start =false;
cin>>p.cost;
wait.push(p);
}
//initial
while(q[win-1].size()!=cap && wait.size()!=0)
{
for(int k=0;k<win;k++)
{
if(q[k].size()<cap )
{
if(wait.size()>0)
{
q[k].push(wait.front());
//cout<<"initial put "<<wait.front().id<<" into "<<k<<endl;
wait.pop();
}
}
}
}
for(int i=1;i<=540;i++) //time
{
for(int k=0;k<win;k++)
{
if(q[k].size()>0) //still have people
{
q[k].front().cost--;
q[k].front().start = true;
if(q[k].front().cost==0)
{
finish[q[k].front().id]=i;
//cout<<q[k].front().id<<" pop from "<<k<<endl;
q[k].pop();
if(wait.size()>0) //into the queue
{
//cout<<wait.front().id<<" push into "<<k<<endl;
q[k].push(wait.front());
wait.pop();
}
}
}
}
}
for(int k=0;k<win;k++)
{
while(q[k].size()>0)
{
if(q[k].front().start==true)
{
finish[q[k].front().id]=540+q[k].front().cost;
}
else
{
finish[q[k].front().id]=-1;
}
q[k].pop();
}
}
while(wait.size()>0)
{
finish[wait.front().id]=-1;
wait.pop();
}
for(int i=0;i<ask;i++)
{
cin>>id;
format(finish[id]);
}
}
分享到:
相关推荐
- **ADDXY**: 把点或LAB点的X,Y坐标写入PAT文件。 - **COPYINFO**: 拷贝数据库文件。 - **DBASE**: 在ARC环境下启动dBASE(需安装dBASE)。 - **DROPITEM**: 从数据库文件中删除一个数据项。 - **IDEDIT**: 更新图层...
### pat甲级单词知识点解析 #### 1. **逗号(Commas)** - **定义**: 逗号是一种标点符号,在编程语言中通常用于分割列表中的元素或参数。 - **用途**: 在C/C++等语言中,逗号用于数组初始化、函数参数列表等。 ####...
- **-F pat**: 指定pat作为默认的分割模式。 - **-e prog**: 指定prog作为命令行中的程序执行。 - **-h**: 显示命令行选项的帮助信息。 - **-i [ext]**: 将文件内容重写为程序输出,原始文件会被备份为.ext文件。 - ...
- **语法**:`void line(int startx, int starty, int endx, int endy);` - **参数**:`startx`, `starty` 表示起始点坐标;`endx`, `endy` 表示结束点坐标。 - **返回值**:无 - **示例**:`line(10, 10, 50, 50);`...
它最初由IBM的三位研究人员Raymond Boyce、Donald Chamberlin和Pat Selinger于1970年代初提出,并在1986年被国际标准化组织(ISO)采纳为标准。 - **数据库简史**:数据库技术的发展可以追溯到20世纪50年代末期,...
- **GE**: 使用PAT: Image-based Algorithm (mSENSE) 和 PAT: k-space-based Algorithm (GRAPPA) 表示。 - **Philips**: 使用ASSET表示。 - **描述**: 并行采集技术通过使用多个接收线圈并结合特定的算法来减少...
- **出口路由配置静态PAT**:`Natservergrotocoltcpglobal128.8.8.10telnetinside192.168.10.30tel` - **开启ALG功能**:`Natalgftpenble` ##### R2配置 **1. 基本配置** - **进入全局模式**:`Sys` - **更改交换机...
#### pat - **含义**:轻拍;拍 - **例句**:“He patted her on the back as a sign of encouragement.”(他轻拍她的背部作为鼓励。) #### congratulate - **含义**:祝贺 - **例句**:“Everyone congratulated...
### 哈希PAT700总有机碳分析仪使用说明书关键知识点 #### 一、设备规格与技术参数 **1. 外形尺寸:** - **尺寸:**59.7×22.9×25.4厘米(23.5×9×10英寸) - **外壳防护等级:** - 快速连接接线模型:IP46 - ...
PAT(Program Association Table,节目关联表)是TS协议中的关键组成部分,用于建立节目(频道)与节目映射表(PMT,Program Map Table)之间的关联。PAT与PMT成对出现,共同构成了TS数据解析的基础。 PAT数据结构...
- **PAT**: 端口地址转换,允许多个私有地址共享一个公有IP地址。 以上是对CCNA(640-802)技术文档中提到的主要知识点的详细介绍,涵盖了网络基础、路由协议、交换原理以及广域网等多个方面,对于理解网络技术具有...
- **功能:** 使用PAT技术(端口地址转换)将内部源地址列表1映射到外部接口f0/1上,并支持多对一的转换。 - **命令:** ```cisco Cisco2811(config)#interface f0/0 ``` - **功能:** 进入接口配置模式。 - **...
入院病情字典PAT_ADM_CONDITION_DICT - **定义**:记录患者入院时的具体病情。 - **用途**:为治疗提供依据。 #### 22. 工作组类字典STAFF_GROUP_CLASS_DICT - **定义**:记录不同的工作组类别。 - **用途**:有助...
- **原理**: 锐捷三层交换机SVI口in/out机制 - **配置**: 标准/扩展IP ACL配置、VTY调用ACL - **示例场景**: 如何通过IP ACL防止未经授权的访问。 - **排错**: 场景IP ACL配置故障 **锐捷防ARP欺骗 (占比9%)** - *...
查询PAT公布运价** - **定义**: 查询PATA区域内航线公布的票价。 - **应用场景**: 适用于需要了解官方公布的票价信息的情况。 #### 七、电子客票出票/废票 - **定义**: 电子客票的出票是指将预订转换为正式的...
- **`:ranges /pat1 /pat2 /g`**: 用`newtext`替换`oldtext`。 - **`:m,n s/oldtext/newtext`**: 在第`m`行到第`n`行之间,用`newtext`替换`oldtext`。 - **`&`**: 重复上一个`:s`命令。 - **`:g/text/s/text2/text3...
- **配置PAT**: 使用`ip nat inside source`命令配置PAT。 #### 十五、ACL简单的配置 - **配置ACL**: 使用`access-list`命令配置访问控制列表。 #### 十六、DHCP中继配置 - **配置DHCP中继**: 使用`ip helper-...
- **类型**: 静态NAT、动态NAT、PAT (Port Address Translation)等。 - **应用场景**: 外部访问内部服务器、多台内部主机共享单一公网IP等。 以上是对CCNA 640-802课程讲义中涉及的主要知识点的概述,这些知识点...