PAT程序设计考题——甲级1014( Waiting in Line ) C++实现
来源:互联网 发布:mac设置用户名 编辑:程序博客网 时间:2024/06/05 14:11
点击打开pat链接
#include<iostream>
#include<math.h>
#include<algorithm>
#include<queue>
#include<map>
#include<stack>
#include<string>
#include<vector>
using namespace std;
#define INF 100000000
#define maxn 100010
int line;
struct windows{
int id;
int endtime,poptime;
queue<int> line;
}temp;
bool cmp(windows a,windows b) {
if(a.poptime==b.poptime) return a.id<b.id;
return a.poptime<b.poptime;
#include<math.h>
#include<algorithm>
#include<queue>
#include<map>
#include<stack>
#include<string>
#include<vector>
using namespace std;
#define INF 100000000
#define maxn 100010
int line;
struct windows{
int id;
int endtime,poptime;
queue<int> line;
}temp;
bool cmp(windows a,windows b) {
if(a.poptime==b.poptime) return a.id<b.id;
return a.poptime<b.poptime;
}
int main()
{ vector<windows> bankline;
int win,pnum,anum;
cin>>win>>line>>pnum>>anum;
int endtime[maxn];
for(int i=0;i<win;i++)
{temp.id=i;
temp.endtime=8*60;
temp.poptime=8*60;
bankline.push_back(temp);
}
int sert[maxn];
for(int i=0;i<pnum;i++)
{
cin>>sert[i];
}
int i;
for( i=0;i<min(win*line,pnum);i++)
{
bankline[i%win].endtime+=sert[i];
if(i<win) bankline[i%win].poptime=bankline[i%win].endtime;
bankline[i%win].line.push(i);
endtime[i]=bankline[i%win].endtime;
}
for(;i<pnum;i++)
{
sort(bankline.begin(),bankline.end(),cmp);
bankline[0].line.pop();
bankline[0].poptime+=sert[bankline[0].line.front()];
bankline[0].line.push(i);
bankline[0].endtime+=sert[i];
endtime[i]=bankline[0].endtime;
}
int qw;
for(int k=0;k<anum;k++)
{
cin>>qw;
qw--;
if(endtime[qw]-sert[qw]>=17*60) cout<<"Sorry"<<endl;
else {
printf("%02d:%02d\n",endtime[qw]/60,endtime[qw]%60);}
}
return 0;
}
int main()
{ vector<windows> bankline;
int win,pnum,anum;
cin>>win>>line>>pnum>>anum;
int endtime[maxn];
for(int i=0;i<win;i++)
{temp.id=i;
temp.endtime=8*60;
temp.poptime=8*60;
bankline.push_back(temp);
}
int sert[maxn];
for(int i=0;i<pnum;i++)
{
cin>>sert[i];
}
int i;
for( i=0;i<min(win*line,pnum);i++)
{
bankline[i%win].endtime+=sert[i];
if(i<win) bankline[i%win].poptime=bankline[i%win].endtime;
bankline[i%win].line.push(i);
endtime[i]=bankline[i%win].endtime;
}
for(;i<pnum;i++)
{
sort(bankline.begin(),bankline.end(),cmp);
bankline[0].line.pop();
bankline[0].poptime+=sert[bankline[0].line.front()];
bankline[0].line.push(i);
bankline[0].endtime+=sert[i];
endtime[i]=bankline[0].endtime;
}
int qw;
for(int k=0;k<anum;k++)
{
cin>>qw;
qw--;
if(endtime[qw]-sert[qw]>=17*60) cout<<"Sorry"<<endl;
else {
printf("%02d:%02d\n",endtime[qw]/60,endtime[qw]%60);}
}
return 0;
}
阅读全文
0 0
- PAT程序设计考题——甲级1014( Waiting in Line ) C++实现
- PAT程序设计考题——甲级1006(Sign In and Sign Out ) C++实现
- PAT程序设计考题——甲级1027(Colors in Mars ) C++实现
- PAT程序设计考题——甲级1058(A+B in Hogwarts ) C++实现
- PAT程序设计考题——甲级1082( Read Number in Chinese ) C++实现
- PAT程序设计考题——甲级1090( Highest Price in Supply Chain ) C++实现
- PAT程序设计考题——甲级1065( A+B and C (64bit) ) C++实现
- PAT甲级A1014. Waiting in Line (30)
- 【PAT甲级】1014. Waiting in Line (30)
- PAT甲级1014. Waiting in Line (30)
- 1014. Waiting in Line (30) PAT 甲级
- PAT 甲级 1014. Waiting in Line
- [PAT-甲级]1014.Waiting in Line
- PAT 甲级 1014. Waiting in Line (30)
- PAT程序设计考题——甲级1007 (最大连续子序列和) C++实现
- PAT程序设计考题——甲级1045 (最长不下降子序列) C++实现
- PAT程序设计考题——甲级1045 (最长公共子序列) C++实现
- PAT程序设计考题——甲级1040 (最长回文串) C++实现
- 纯属 看到一篇好文章想收存== 谢谢知乎原创作者
- iOS APP启动函数调用顺序~详解
- 计数系统架构实践一次搞定
- lintcode: Partition Equal Subset Sum
- 【CSS3盒模型display:box的应用】
- PAT程序设计考题——甲级1014( Waiting in Line ) C++实现
- H5拖拽上传
- 微信小程序开发实践点滴——Bmob基本REST API的python封装
- 钟爱STM32的理由:强大的片上内存调试功能,不改写芯片内原有程序
- Handler, Message 消息传递机制
- Java并发编程:wait()和notify()/notifyAll()
- Leetcode176. Second Highest Salary
- 单例模式
- 代理模式