描述 | 有一个固定车位的车库,如果车库还有车位,则允许进入,如果车库已满,有来车入库时,必须拒绝进入 |
---|---|
知识点 | 字符串,循环,链表,队列,栈,查找,搜索,排序,树,图,数组,函数,指针,枚举,位运算,结构体,联合体,文件操作,递归 |
运行时间限制 | 无限制 |
内存限制 | 无限制 |
输入 | 设置车库容量: capacity 20 表明设置车库的容量为20,相当于只能进入20辆车
车辆入库: in 表明有一辆车进入车库
车辆出库: out 表明有一辆车离开车库
输入结束: end 表明本次输入结束
|
输出 | 当前车库剩余容量足够时,车辆进入输出allow,否则输出reject
允许车辆入库: allow 表明允许车辆入库,车辆入库后,车库剩余容量减一
拒绝车辆入库: reject 表明当前车库已满,即剩余容量为0,拒绝车辆入库
|
样例输入 | capacity 20 in in out out end |
样例输出 | allow allow |
#include<iostream>
#include<sstream>
using namespace std;
int m =0,k= 0;
int main()
{
string ca = "capacity";
string in = "in";
string out = "out";
string end = "end";
string input = "";
char a[1024];
int i = 0;
while (cin.getline(a, 1024))
{
i = 0; input = "";
while (a[i] != '\0')
{
input += a[i];
i++;
}
if (input == in)
{
if (k < m)
{
k++;
cout << "allow" << endl;
}
else
{
cout << "reject" << endl;
}
}
if (input == out)
{
if (k > 0)
k--;
}
if (input == end)
{
m = k = 0;
}
else
{
i = 0;
input = "";
while (a[i] != ' ')
{
input += a[i];
i++;
}
if (input == ca)
{
input = "";
while (a[++i] != '\0')
{
input += a[i];
}
stringstream ss;
ss << input;
ss >> m;
k = 0;
}
}
}
return 0;
}