NYOJ I. 鸡蛋队列
来源:互联网 发布:地球人软件试用版 编辑:程序博客网 时间:2024/04/30 10:41
I. 鸡蛋队列
将两根筷子平行的放在一起,就构成了一个队列。将带有编号的鸡蛋放到两根筷子之间叫做入队(push),将筷子之间的鸡蛋拿出来叫做出队(pop)。但这两种方式有特殊的定义,对于入队,只能将鸡蛋从队列的尾部向里放入;对于出队,只能将鸡蛋从队列的头部向外将鸡蛋拿出来。
将①、②入队:
头____________尾 _____________ ______________
← ① ← ② ① ← ② ① ②
______________ _____________ ______________
将①、②出队:
头____________尾 ______________ ______________
← ① ← ② ① ← ② ① ②
______________ ______________ ______________
Input
第二行输入一个数N,表示有N(N<=10)种操作
接下来N行,每行一种操作,push表示将编号为x的鸡蛋放入队列中,pop表示拿走队列头部的一个鸡蛋。
数据输入保证合法,队列中没有鸡蛋时不会有出队操作!
Output
Sample Input
23push 1 push 2push 32push 1pop
Sample Output
1 2 3no eggs!
Hint
○| ̄|\_
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;int main(){ int t; scanf("%d",&t); while(t--) { int n,sum=0,b[1005],k=0; //sum和k用来标记结尾和开头 char a[105]; scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%s",a); int len=strlen(a); if(a[1]=='u') scanf("%d",&b[sum++]); if(a[1]=='o') //这里不用变0也行,只要改变了开头的位置就行 b[k++]=0; } if(k==sum) //如果没有鸡蛋 printf("no eggs!\n"); else //这里我是按两个数字之间有空格输出的,最后一个数字后面没有空格(习惯使然,以前被格式坑惨了) { printf("%d",b[k]); for(int i=k+1;i<sum;i++) printf(" %d",b[i]); printf("\n"); } } return 0;}
- NYOJ I. 鸡蛋队列
- 鸡蛋队列
- 鸡蛋队列
- 鸡蛋队列
- nyoj-鸡蛋栈
- NYOJ J. 鸡蛋栈
- 1117 鸡蛋队列【模拟队列】
- nyoj1117 鸡蛋队列 (双端队列,deque)
- 鸡蛋
- NYOJ 635优先队列
- nyoj 547 优先队列
- NYOJ 150 Train Problem I
- 管理 I/O 队列
- 创建 I/O 队列
- NYOJ 348 Magic【双向队列】
- 【NYOJ 284 BFS+优先队列】
- nyoj 55(优先队列)
- NYOJ 284 优先队列 搜索
- 图形界面的进度条
- Android Note-android studio 无法创建android项目
- 关于Python中class的理解之万物皆对象
- springboot + jpa 启动报警之SQL异常
- 学习笔记
- NYOJ I. 鸡蛋队列
- C#读书笔记
- C++并发编程学习——2.管理线程
- 对输入数据的异常处理
- SpringBoot + WebSocket
- dubbo的Failed to save registry store file问题
- bashrc与profile的区别
- C语言学习笔记(九)---简单的RSA加密算法练习
- Android艺术探索笔记