博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1014 Waiting in Line (30 分)
阅读量:3947 次
发布时间:2019-05-24

本文共 1764 字,大约阅读时间需要 5 分钟。

该题细节特别多,注意如果轮到某人的话

#include 
using namespace std;const int M = 1e3 + 10;int n,m,k,q,per;int cost[M];int out[M],in[M];queue
dl[21];void Init(int k){ for(int i = 1; i <= k; ++i)in[i] = 0; for(int i = 1; i <= k; ++i){ cin >> cost[i]; int minp = 0; for(int j = 0; j < n; ++j) if(dl[j].size() < dl[minp].size()) minp = j; if(dl[minp].size() < m){ dl[minp].push(i); } out[i] = -1; }}int main(){ //freopen("1.txt","r",stdin); cin >> n >> m >> k >> q; Init(k); int total = 0; int start = n*m+1; while(total < 540){ total++; for(int i = 0; i < n; ++i){ if(dl[i].size() == 0) continue; else{ cost[dl[i].front()]--; in[dl[i].front()] = 1; if(cost[dl[i].front()] == 0){ out[dl[i].front()] = total; dl[i].pop(); if(start <= k) dl[i].push(start); start++; } } } } cout.fill('0'); while(q--){ cin >> per; if(in[per] == 0) cout << "Sorry\n"; else{ int h = 8 + out[per]/60; int fen = out[per] % 60; if(out[per] == -1){ for(int i = 0; i < n; ++i) if(dl[i].front() == per){ int h = 17 + cost[dl[i].front()] / +60; int fen = cost[dl[i].front()] % +60; cout << setw(2) << h << ":" << setw(2) << fen << "\n"; break; } } else cout << setw(2) << h << ":" << setw(2) << fen << "\n"; } }}

,过了下午五点他还没结束的话,要输出直到他结束的时间。细节很多,坑也很多。。

转载地址:http://dqowi.baihongyu.com/

你可能感兴趣的文章
log4cplus的按日生成文件,配置例子
查看>>
跨平台的文字编码转换方法--ICU
查看>>
ICU4C 4.4 静态库的编译
查看>>
FTP下载类, windows平台下对CFtpConnection上传下载的封装类
查看>>
代码自动生成-宏带来的奇技淫巧
查看>>
VC com开发中实现IObjectSafety
查看>>
c# 正则表达式基础
查看>>
C#3.0语言新特性
查看>>
W32Dasm反汇编工具使用教程
查看>>
EXE破解工具介绍
查看>>
机械码对应值
查看>>
常用语音编码的WAVE文件头格式剖析--各种编码
查看>>
在VC6集成环境中开发设备驱动程序的方法
查看>>
如何进行软件需求分析
查看>>
有关数据挖掘的10个常见问题
查看>>
电信数据挖掘
查看>>
电信数据挖掘之流失管理
查看>>
电信运营商如何进行客户细分
查看>>
c++名库介绍
查看>>
boost1.43在win7下的编译
查看>>