杭电-1702 ACboy needs your help again!(栈&队列)
2016-07-26 09:03
507 查看
ACboy needs your help again!
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5670 Accepted Submission(s): 2963
[align=left]Problem Description[/align]
ACboy 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!
[align=left]Input[/align]
The 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.
[align=left]Output[/align]
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.
[align=left]Sample Input[/align]
4
4 FIFO
IN 1
IN 2
OUT
OUT
4 FILO
IN 1
IN 2
OUT
OUT
5 FIFO
IN 1
IN 2
OUT
OUT
OUT
5 FILO
IN 1
IN 2
OUT
IN 3
OUT
[align=left]Sample Output[/align]
1
2
2
1
1
2
None
2
3
[align=left]Source[/align]
2007省赛集训队练习赛(1)
栈和队列的模板题:
栈:先进后出;
队列:先进先出;
头文件:#include<stack>
#include<queue>
using namespace std;
用数组:
#include<stdio.h> #include<string.h> int main() { int t,n,i,j,sum,a[10000]; char str[10],mark[10]; scanf("%d",&t); while(t--) { scanf("%d%s",&n,str); if(strcmp(str,"FIFO")==0) { i=j=0; while(n--) { scanf("%s",mark); if(strcmp(mark,"IN")==0) { scanf("%d",&sum); a[i++]=sum; } else { if(j>=i) printf("None\n"); else printf("%d\n",a[j++]); } } } else if(strcmp(str,"FILO")==0) { i=0; while(n--) { scanf("%s",mark); if(strcmp(mark,"IN")==0) { scanf("%d",&sum); a[i++]=sum; } else if(i<1) printf("None\n"); else printf("%d\n",a[--i]) ; } } } return 0; }C++
#include <iostream> #include <cstdio> #include <string.h> #include <queue> #include <stack> using namespace std; void que_ex(int n) { queue<int> Q; char s[10]; int a; while(n--) { scanf("%s",s); if(!strcmp(s,"IN")) { scanf("%d",&a); Q.push(a); } else if(!strcmp(s,"OUT")) { if(Q.empty()) printf("None\n"); else { printf("%d\n",Q.front()); Q.pop(); } } } } void sta_ex(int n) { stack<int> S; char s[10]; int a; while(n--) { scanf("%s",s); if(!strcmp(s,"IN")) { scanf("%d",&a); S.push(a); } else if(!strcmp(s,"OUT")) { if(S.empty()) printf("None\n"); else { printf("%d\n",S.top()); S.pop(); } } } } int main() { int n; while(~scanf("%d",&n)) { while(n--) { int m; char str[100]; scanf("%d%s",&m,str); if(!strcmp(str,"FIFO")) que_ex(m); else if(!strcmp(str,"FILO")) sta_ex(m); else printf("error\n"); } } return 0; }
相关文章推荐
- POJ1363:Rails(栈)
- poj 1363 Rails 【栈】
- Repair the Wall
- 2016 Multi-University Training Contests
- What it means for machine intelligence and AI-Christopher Nguyen
- 【 POJ 1363 】Rails
- LeetCode:Contains Duplicate
- tail、head 命令用法
- POJ:1702 Rails(栈的应用)
- HDU:1702 ACboy needs your help again!(简单栈、队列)
- 服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
- poj1363Rails(栈)
- 【POJ 1363】Rails
- 【HDU 杭电 1702】ACboy needs your help again!
- Codeforces Round #209 (Div. 2) D - Pair of Numbers
- 2016 Multi-University Training Contest 2 题解(待续)
- 66. No EntityManager with actual transaction available for current thread【从零开始学】
- 【转载】重磅!中国人工智能/机器人/无人机创业公司100 | 智能内参
- 浅谈iptables
- poj1363Rails