refresh的停车场
2015-06-10 09:28
295 查看
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
refresh最近发了一笔横财,开了一家停车场。由于土地有限,停车场内停车数量有限,但是要求进停车场的车辆过多。当停车场满时,要进入的车辆会进入便道等待,最先进入便道的车辆会优先进入停车场,而且停车场的结构要求只出去的车辆必须是停车场中最后进去的车辆。现告诉你停车场容量N以及命令数M,以及一些命令(Add num 表示车牌号为num的车辆要进入停车场或便道,
Del 表示停车场中出去了一辆车,Out 表示便道最前面的车辆不再等待,放弃进入停车场)。假设便道内的车辆不超过1000000.
输入
输入为多组数据,每组数据首先输入N和M(0< n,m <200000),接下来输入M条命令。输出
输入结束后,如果出现停车场内无车辆而出现Del或者便道内无车辆而出现Out,则输出Error,否则输出停车场内的车辆,最后进入的最先输出,无车辆不输出。示例输入
2 6 Add 18353364208 Add 18353365550 Add 18353365558 Add 18353365559 Del Out
示例输出
18353365558 18353364208
[code]#include<stdio.h> #include<string.h> #include<stdlib.h> long long ls[200010], b[1000010],t; int main() { int n, m; while(~scanf("%d%d",&n,&m)) { char a[20]; memset(ls,0,sizeof(ls)); memset(b,0,sizeof(b)); int i,h1=0, r1=0, h2 = 0, r2 = 0, k = 0; int c = 0, mm = 0; for(i = 0; i < m; i++) { scanf("%s",a); if(strcmp(a,"Add")== 0) { scanf("%lld",&t); if(k < n) { ls[r1++] = t; k++; } else { b[r2++] = t; c++; } } else if(strcmp(a,"Del") == 0) { if(k == 0) { // printf("Error\n"); mm = 1; } else { k--; r1--; if(b[h2]) { ls[r1++] = b[h2]; h2++; c--; k++; } } } else { if(c == 0) { // printf("Error\n"); mm = 1; } else { c--; h2++; } } } if(mm) printf("Error\n"); else for(i = r1-1; i >= h1; i--) { printf("%lld\n",ls[i]); } } return 0; }
[/code]
相关文章推荐
- C# 数据结构 之 二叉树
- PHP array_diff_assoc()
- LG Open source code获取
- 为什么使用LINUX(有点长,没耐心别看)大家自己体会
- web.xml中的Servlet的url-pattern映射规则
- R.java was modified manually! Reverting to generated version!项目显示红色感叹号
- NOJ1184 迷失的邮票 散列表
- lightoj 1422Halloween Costumes(区间dp)
- android SharedPreferences类存储路径、本地数据库路径
- nc 数据访问接口
- 用c#开发微信 (15) 微活动 1 大转盘
- 02 Linux 下安装JDK并测试开发“Hello World!”
- Javascript中实现String.startsWith和endsWith方法
- 第13周项目OOP版电子词典
- Android API文档_AudioFormat
- 大数据究竟是什么?一篇文章让你认识并读懂大数据
- 人事面试100问,助你从容面对
- EditPlus配置Java语法自动补全功能
- 无限级联下拉菜单
- 单例模式_装饰模式_模板模式