sdutacm-refresh的停车场

    xiaoxiao2021-03-26  7

    refresh的停车场

    TimeLimit: 1000MS Memory Limit: 65536KB

    SubmitStatistic

    Problem Description

     refresh最近发了一笔横财,开了一家停车场。由于土地有限,停车场内停车数量有限,但是要求进停车场的车辆过多。当停车场满时,要进入的车辆会进入便道等待,最先进入便道的车辆会优先

    进入停车场,而且停车场的结构要求只出去的车辆必须是停车场中最后进去的车辆。现告诉你停车场容量N以及命令数M,以及一些命令(Add num 表示车牌号为num的车辆要进入停车场或便道,

    Del 表示停车场中出去了一辆车,Out 表示便道最前面的车辆不再等待,放弃进入停车场)。假设便道内的车辆不超过1000000.

    Input

     输入为多组数据,每组数据首先输入NM0< n,m <200000),接下来输入M条命令。

    Output

     输入结束后,如果出现停车场内无车辆而出现Del或者便道内无车辆而出现Out,则输出Error,否则输出停车场内的车辆,最后进入的最先输出,无车辆不输出。

    Example Input

    2 6

    Add18353364208

    Add18353365550

    Add 18353365558

    Add18353365559

    Del

    Out

    Example Output

    18353365558

    18353364208

    Hint

     

    Author

     

    #include<stdio.h> #include<string.h> #include<math.h> #include<stdlib.h> #include<algorithm> #include<queue> #include<deque> #include<stack> #include <iostream> using namespace std; int main() { //freopen("ass","w",stdout); int n,m; while(~scanf("%d%d",&n,&m)) { int f = 1; stack<long int>p; queue<long int>q; char o[30]; while(m--) { scanf("%s",o); if(strcmp(o,"Add")==0) { long int u; scanf("%ld",&u); if(p.size()<n) p.push(u); else q.push(u); } else if(strcmp(o,"Del")==0) { if(p.empty()) { f = 0; } else { p.pop(); if(!q.empty()) { p.push(q.front()); q.pop(); } } } else if(strcmp(o,"Out")==0) { if(q.empty()) { f = 0; } else q.pop(); } } if(f) while(!p.empty()) { printf("%ld\n",p.top()); p.pop(); } else printf("Error\n"); } return 0; } /*************************************************** User name: jk160505徐红博 Result: Accepted Take time: 0ms Take Memory: 156KB Submit time: 2017-01-13 21:13:15 ****************************************************/

    转载请注明原文地址: https://ju.6miu.com/read-600010.html

    最新回复(0)