(hdu step 8.1.1)ACboy needs your help again!(STL中棧和隊列的基本使用),hduacboy
題目:
| ACboy needs your help again! |
| Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) |
| Total Submission(s): 73 Accepted Submission(s): 57 |
| |
Problem DescriptionACboy was kidnapped!! he miss his mother very much and is very scare now.You can't image how dark the room he was put into is, so poor :(. As a smart ACMer, you want to get ACboy out of the monster's labyrinth.But when you arrive at the gate of the maze, the monste say :" I have heard that you are very clever, but if can't solve my problems, you will die with ACboy." The problems of the monster is shown on the wall: Each problem's first line is a integer N(the number of commands), and a word "FIFO" or "FILO".(you are very happy because you know "FIFO" stands for "First In First Out", and "FILO" means "First In Last Out"). and the following N lines, each line is "IN M" or "OUT", (M represent a integer). and the answer of a problem is a passowrd of a door, so if you want to rescue ACboy, answer the problem carefully! |
InputThe input contains multiple test cases. The first line has one integer,represent the number oftest cases. And the input of each subproblem are described above. |
Output For each command "OUT", you should output a integer depend on the word is "FIFO" or "FILO", or a word "None" if you don't have any integer. |
Sample Input44 FIFOIN 1IN 2OUTOUT4 FILOIN 1IN 2OUTOUT5 FIFOIN 1IN 2OUTOUTOUT5 FILOIN 1IN 2OUTIN 3OUT |
Sample Output122112None23 |
| |
| Source2007省賽集訓隊練習賽(1) |
| Recommendlcy |
題目分析:
棧和隊列的基本使用,簡單題。其實出題人的意思可能是讓我們自己手寫一個棧和隊列。但是,作為一個早就知道STL的渣渣來說,是沒有耐心再去寫stack和queue了。。。哎哎。。
代碼如下:
/* * a.cpp * 棧和隊列的類比 * * Created on: 2015年3月19日 * Author: Administrator */#include <iostream>#include <cstdio>#include <stack>#include <queue>using namespace std;int main(){int t;scanf("%d",&t);while(t--){int n;string type;cin >> n >> type;if(type == "FIFO"){queue<int> q;string cmd;int num;int i;for(i = 0 ; i < n ; ++i){cin >> cmd;if(cmd == "IN"){cin >> num;q.push(num);}else{if(q.empty() == true){printf("None\n");}else{int ans = q.front();q.pop();printf("%d\n",ans);}}}}else{stack<int> st;string cmd;int num;int i;for(i = 0 ; i < n ; ++i){cin >> cmd;if(cmd == "IN"){cin >> num;st.push(num);}else{if(st.empty() == true){printf("None\n");}else{int ans = st.top();st.pop();printf("%d\n",ans);}}}}}return 0;}