HM214 师徒打饭

HM214 师徒打饭

HM214 师徒打饭

来源: 第 214 集 queue容器-常用接口

难度: 普及-

时间限制: 1s

空间限制: 64MB

题目描述

队列符合先进先出。STL 里使用它要包含头文件 queue。构造有默认构造和拷贝构造,赋值用 =。它既可以装整数,也可以装自定义类型。本题必须用「姓名 + 年龄」的人物类型入队。

常用接口:

  • push:从队尾入队;
  • pop:从队头出队;
  • front:队头人物;
  • back:队尾人物;
  • empty:是否为空;
  • size:人数。

只要队列不为空,就先看当前的队头和队尾,再 pop。只剩一个人时,他既是队头也是队尾。全部出队后大小为 \(0\)。

请这样做:

  1. 默认构造 q1,把 \(n\) 个人按顺序 push 进去。
  2. 拷贝构造 q2(q1),再用 q3 = q2 赋值。
  3. 输出 q1size 以及是否为空(空则 YES,否则 NO)。
  4. q1 非空时循环:输出队头的姓名、年龄,再输出队尾的姓名、年龄,然后出队。
  5. 再输出弹空后的 size 以及是否为空。
  6. q2q3 各做一次同样的「看头尾再出队」循环(不必再打印它们弹空后的大小)。

输入格式

第一行一个整数 \(n\)。

接下来 \(n\) 行,每行一个不含空格的姓名和一个整数年龄,按入队顺序给出。当 \(n=0\) 时没有后续行。

输出格式

先一行:q1 出队前的 sizeYES/NO

随后若干行:q1 每次循环一行,四个字段为队头姓名、队头年龄、队尾姓名、队尾年龄,字段之间一个空格。一开始就空则没有这些行。

再一行:q1 出完后的 sizeYES/NO

然后是 q2 的出队过程(格式与 q1 的那些「头尾」行相同),再是 q3 的出队过程。

样例

输入 #1

4
唐僧 30
孙悟空 1000
猪八戒 900
沙僧 800

输出 #1

4 NO
唐僧 30 沙僧 800
孙悟空 1000 沙僧 800
猪八戒 900 沙僧 800
沙僧 800 沙僧 800
0 YES
唐僧 30 沙僧 800
孙悟空 1000 沙僧 800
猪八戒 900 沙僧 800
沙僧 800 沙僧 800
唐僧 30 沙僧 800
孙悟空 1000 沙僧 800
猪八戒 900 沙僧 800
沙僧 800 沙僧 800

输入 #2

1
悟空 500

输出 #2

1 NO
悟空 500 悟空 500
0 YES
悟空 500 悟空 500
悟空 500 悟空 500

说明

\(0 \le n \le 1000\),姓名长度不超过 \(20\),年龄为不超过 \(10^9\) 的整数。

样例 #1:师傅先入队也先出队。一开始队头是唐僧、队尾是沙僧;唐僧出队后队头变成孙悟空,队尾仍是沙僧;只剩沙僧时他同时是队头和队尾。拷贝构造和赋值得到的两支队伍出队过程相同。

信息

ID
1213
难度
(无)
分类
(无)
标签
(无)
递交数
0
已通过
0
通过率
?
上传者