L2-1 包装机 (25 分)

一种自动包装机的结构如图 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<iostream>
#include<queue>
#include<stack>
using namespace std;
const int N=510,M=1010;
int n,m,s;
queue<char>q[N];
stack<char>stk;
int main(){cin>>n>>m>>s;getchar();string str;for(int i=1;i<=n;i++){cin>>str;for(int j=0;j<m;j++)q[i].push(str[j]);}int x;while(scanf("%d",&x),x!=-1){if(!x){if(stk.size()){printf("%c",stk.top());stk.pop();}}else{if(q[x].size()){if(stk.size()==s){printf("%c",stk.top());stk.pop();}stk.push(q[x].front());q[x].pop();}}}return 0;
}

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

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

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

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

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

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

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

  4. 7-7 包装机 (25 分)

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

  5. 【CCCC】L2-022 重排链表 (25分),,链表遍历

    problem L2-022 重排链表 (25分) 给定一个单链表 L ​1 ​​ →L ​2 ​​ →⋯→L ​n−1 ​​ →L ​n ​​ ,请编写程序将链表重新排列为 L ​n ​​ →L ​ ...

  6. 【CCCC】L2-011 玩转二叉树 (25分),二叉树建树与遍历(我讨厌树,@L2-006)

    problem L2-011 玩转二叉树 (25分) 给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列.所谓镜面反转,是指将所有非叶结点的左右孩子对换.这里假设 ...

  7. 【CCCC】L2-006 树的遍历 (25分),根据后序与中序遍历建立二叉树(我讨厌树,系列1)

    problem L2-006 树的遍历 (25分) 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格式: 输入第一行给出一个正整数N(≤30), ...

  8. 【CCCC】L2-002 链表去重 (25分),,把一个链表拆成两个

    problem L2-002 链表去重 (25分) 给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉.即对每个键值 K,只有第一个绝对值等于 K 的结点被保留.同时,所有被删除的结点 ...

  9. 天梯赛:L2-001 紧急救援 (25 分)

    题目详情 - L2-001 紧急救援 (25 分) (pintia.cn) 题解:使用dijkstra算法就可以了,难点在于如何存储路径.我首先十分单纯的用了pair<int,int>进行 ...

最新文章

  1. 硬核!一文梳理经典图网络模型
  2. php获取当天的日期-年月日与星期几
  3. 从地理围栏看物联网安防
  4. JLink EDU v7.58 变砖修复
  5. php文件改后缀,php 如何修改文件后缀
  6. PHP+HTML简单实现BBS论坛与回帖
  7. vue echarts 地图往下穿透到县
  8. vptr初始化语义学
  9. 如何理解静态库与动态库
  10. python标准库不需要导入即可使用其中的所有对象和方法_Python扩展库需导入以后才能使用其中的对象,Python标准库不需要导入即可使用其中的所有对象和方法...
  11. beanstalkd协议解读(中文翻译加个人理解)
  12. 水星路由器设置显示服务器,新款水星无线路由器设置_新版水星(MERCURY)路由器设置教程-192路由网...
  13. 深度 | 用于图像分割的卷积神经网络:从R-CNN到Mark R-CNN
  14. Vue 2.x折腾记 - (15) 捣鼓一个中规中矩loading组件
  15. mac 设置java环境变量_mac下java环境变量配置
  16. 语音控制,让家居听你的话
  17. C语言小黄鸭☞循环结构do{}while()
  18. 2018年总结和职场规划
  19. 运放振荡问题的个人理解
  20. java中父类与子类有相同属性调谁?取决于左边

热门文章

  1. 2020年浙江高考考python吗_2020年浙江高考改革最新消息 浙江新高考规则解读
  2. 多线程和线程池的基本知识总结
  3. MySQL笔记(十)MySQL事务 transaction
  4. 实体bean里面不要轻易加transient,反序列回来之后会变成null
  5. Cookie案例-显示用户的上次访问时间代码实现
  6. Postman的一个使用技巧----设置环境变量
  7. noip模拟赛 都市
  8. java 集合类 *****
  9. C# 获得两日期之间所有月份(包括跨年)
  10. Magento给产品添加“new”或者折扣数量标签 magento new label. discount label