一种自动包装机的结构如图 1 所示。首先机器中有 N 条轨道,放置了一些物品。轨道下面有一个筐。当某条轨道的按钮被按下时,活塞向左推动,将轨道尽头的一件物品推落筐中。当 0 号按钮被按下时,机械手将抓取筐顶部的一件物品,放到流水线上。图 2 显示了顺序按下按钮 3、2、3、0、1、2、0 后包装机的状态。

图1 自动包装机的结构

图 2 顺序按下按钮 3、2、3、0、1、2、0 后包装机的状态

一种特殊情况是,因为筐的容量是有限的,当筐已经满了,但仍然有某条轨道的按钮被按下时,系统应强制启动 0 号键,先从筐里抓出一件物品,再将对应轨道的物品推落。此外,如果轨道已经空了,再按对应的按钮不会发生任何事;同样的,如果筐是空的,按 0 号按钮也不会发生任何事。

现给定一系列按钮操作,请你依次列出流水线上的物品。

输入格式:

输入第一行给出 3 个正整数 N(≤100)、M(≤1000)和 Smax​(≤100),分别为轨道的条数(于是轨道从 1 到 N 编号)、每条轨道初始放置的物品数量、以及筐的最大容量。随后 N 行,每行给出 M 个英文大写字母,表示每条轨道的初始物品摆放。

最后一行给出一系列数字,顺序对应被按下的按钮编号,直到 −1 标志输入结束,这个数字不要处理。数字间以空格分隔。题目保证至少会取出一件物品放在流水线上。

输出格式:

在一行中顺序输出流水线上的物品,不得有任何空格。

输入样例:

3 4 4
GPLT
PATA
OMSA
3 2 3 0 1 2 0 2 2 0 -1

结尾无空行

输出样例:

MATA

结尾无空行

答案:

#include <bits/stdc++.h>#define FAST_IO                  \ios::sync_with_stdio(false); \cin.tie(0);                  \cout.tie(0);using namespace std;int main()
{FAST_IO;      //加速cin coutint n, m, sm; //读取轨道数、物品数、最大容量cin >> n >> m >> sm;vector<queue<char>> v(n); //初始化n个queuefor (int i = 0; i < n; i++)for (int j = 0; j < m; j++){char ch;cin >> ch;v[i].push(ch);}int x;cin >> x;       //读取命令stack<char> st; //筐while (x != -1){//如果是要把货从筐中取到流水线上,需要先检验筐是不是空的if (x == 0 && !st.empty()){cout << st.top();st.pop();}//如果是要从轨道上往筐中放货,需要先判断轨道上非空else if (!v[x - 1].empty()){//放之前先检验筐是不是已经满了,如果满了需要先从筐中取一个货到流水线上if (st.size() == sm){cout << st.top();st.pop();}//轨道上的货进入筐中char ch = v[x - 1].front();st.push(ch);v[x - 1].pop();}//继续读取命令cin >> x;}return 0;
}

注意事项:

筐:栈(先进后出)

轨道:队列(先进先出)(之所以设置为队列,有一个原因是方便处理输入的数据,因为输入的数据是每条轨道上初始物品摆放的顺序,要结合图片来理解)

7-7 包装机 (25 分)相关推荐

  1. L2-1 包装机 (25 分)(STL43行代码)

    L2-1 包装机 (25 分) 一种自动包装机的结构如图 1 所示.首先机器中有 N 条轨道,放置了一些物品.轨道下面有一个筐.当某条轨道的按钮被按下时,活塞向左推动,将轨道尽头的一件物品推落筐中.当 ...

  2. 7-9 包装机 (25 分)

    7-9 包装机 (25 分) 一种自动包装机的结构如图 1 所示.首先机器中有 N 条轨道,放置了一些物品.轨道下面有一个筐.当某条轨道的按钮被按下时,活塞向左推动,将轨道尽头的一件物品推落筐中.当 ...

  3. L2-1 包装机 (25 分)

    L2-1 包装机 (25 分) 一种自动包装机的结构如图 1 所示.首先机器中有 N 条轨道,放置了一些物品.轨道下面有一个筐.当某条轨道的按钮被按下时,活塞向左推动,将轨道尽头的一件物品推落筐中.当 ...

  4. L2-037 包装机 (25 分)-PAT 团体程序设计天梯赛 GPLT

    一种自动包装机的结构如图 1 所示.首先机器中有 N 条轨道,放置了一些物品.轨道下面有一个筐.当某条轨道的按钮被按下时,活塞向左推动,将轨道尽头的一件物品推落筐中.当 0 号按钮被按下时,机械手将抓 ...

  5. 12门课100分直博清华!这份成绩单冲上热搜,但学霸小伙也曾考过25分

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 金磊 明敏 发自 凹非寺 量子位 报道 | 公众号 QbitAI 一 ...

  6. PTA 7-3 旅游规划 (25分)(双权值Dijkstra最短路)

    7-3 旅游规划 (25分) 有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路费.现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径.如果有若干条路 ...

  7. PTA 03-树1 树的同构 (25分)

    题目地址 https://pta.patest.cn/pta/test/15/exam/4/question/711 5-3 树的同构   (25分) 给定两棵树T1和T2.如果T1可以通过若干次左右 ...

  8. 【PAT (Advanced Level) Practice】1051 Pop Sequence (25 分)

    1051 Pop Sequence (25 分) Given a stack which can keep M numbers at most. Push N numbers in the order ...

  9. 【PAT (Advanced Level) Practice】1093 Count PAT‘s (25 分)

    1093 Count PAT's (25 分) The string APPAPT contains two PAT's as substrings. The first one is formed ...

最新文章

  1. 团队作业—第二阶段06
  2. 后Hadoop时代的大数据技术思考:数据即服务
  3. 100小时学会sap-财务篇fico总结介绍篇
  4. django2.2连接mysql遇到的坑(亲测)
  5. C# NHtmlFilter 帮你过滤Html危险脚本 防止XSS攻击
  6. 一步步编写操作系统 23 重写主引导记录mbr
  7. 内部类 java 1614957119
  8. oracle 截取小数点_oracle函数(关于处理小数点位数和时间) | 学步园
  9. 9-Shell的逻辑操作符知识介绍-实践及企业案例脚本剖析
  10. ORACLE ASM 转自三思笔记
  11. 蓝桥杯嵌入式——TIM
  12. 【信息系统项目管理师】干系人管理
  13. linux mysql 命令行查询 乱码_mysql命令提示行连接乱码的解决
  14. 水处理过滤器:多介质过滤器结构组成及技术参数
  15. 数据结构-排序算法总结与感悟
  16. 2020年CISP每日一练
  17. COB制作工艺流程简介
  18. rio隐藏的团队列表
  19. 泰山OFFICE技术讲座:行距,五号、小四时还正常,四号时大幅增加,这是为什么?
  20. 格式化输出和整数所占字节

热门文章

  1. c 语言返回数组,c语言返回数组 - LIU-X1001的个人空间 - OSCHINA - 中文开源技术交流社区...
  2. C语言:数组、字符串长度
  3. 老鹰主机怎么样_HawkHost老鹰主机购买独立ip的最新流程
  4. webgl入门到成仙【入门-04wegbl的实际绘图思路】
  5. 详解网站标志的5种设计制作表现手法
  6. 『中级篇』docker企业版本地安装之UCP(57)
  7. 2022-06-17:virtualBox虚拟机联网
  8. 在线考试系统软件测试分析报告,在线考试系统软件测试用例报告.doc
  9. 微信小程序|分享功能|复制文字|拨打电话|
  10. 7-1 Fibonacci数列 java 题解