sdut 2088 数据结构实验之栈与队列十一:refresh的停车场
生活随笔
收集整理的這篇文章主要介紹了
sdut 2088 数据结构实验之栈与队列十一:refresh的停车场
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
數據結構實驗之棧與隊列十一:refresh的停車場
Time Limit:?1000MS?Memory Limit:?65536KB Submit?Statistic?DiscussProblem Description
?refresh最近發了一筆橫財,開了一家停車場。由于土地有限,停車場內停車數量有限,但是要求進停車場的車輛過多。當停車場滿時,要進入的車輛會進入便道等待,最先進入便道的車輛會優先
進入停車場,而且停車場的結構要求只出去的車輛必須是停車場中最后進去的車輛。現告訴你停車場容量N以及命令數M,以及一些命令(Add num 表示車牌號為num的車輛要進入停車場或便道,
Del 表示停車場中出去了一輛車,Out 表示便道最前面的車輛不再等待,放棄進入停車場)。假設便道內的車輛不超過1000000.
Input
?輸入為多組數據,每組數據首先輸入N和M(0< n,m <200000),接下來輸入M條命令。
Output
?輸入結束后,如果出現停車場內無車輛而出現Del或者便道內無車輛而出現Out,則輸出Error,否則輸出停車場內的車輛,最后進入的最先輸出,無車輛不輸出。
Example Input
2 6 Add 18353364208 Add 18353365550 Add 18353365558 Add 18353365559 Del OutExample Output
18353365558 18353364208 /*看了一會題意竟然沒看懂最后的結果是怎么輸出來的,看了解析之后才知道輸出的是停車場內的出車順序*/
#include <iostream> #include <queue> #include <stack> using namespace std; int main() {int n,m;string num;while(cin>>n>>m){stack<string>s;queue<string>q;char a[4];int tag=0,t;for(int i=0;i<m;++i){cin>>a;if(a[0]=='A'){cin>>num;t=s.size();if(t==n)q.push(num);elses.push(num);}else if(a[0]=='D'){if(s.empty())tag=1;else{s.pop();//q.front();//if(!q.empty())//不要再錯寫成while(){s.push(q.front());q.pop();}}}else{if(q.empty())tag=1;elseq.pop();}}if(tag)cout<<"Error"<<endl;else{while(!s.empty()){cout<<s.top()<<endl;;s.pop();}}}return 0; }
總結
以上是生活随笔為你收集整理的sdut 2088 数据结构实验之栈与队列十一:refresh的停车场的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sdut 2135 数据结构实验之队列一
- 下一篇: 第八周项目实践6 KMP算法(串的模式匹