L2-037 包装机 (25 分)
一种自动包装机的结构如图 1 所示。首先机器中有 N 条轨道,放置了一些物品。轨道下面有一个筐。当某条轨道的按钮被按下时,活塞向左推动,将轨道尽头的一件物品推落筐中。当 0 号按钮被按下时,机械手将抓取筐顶部的一件物品,放到流水线上。图 2 显示了顺序按下按钮 3、2、3、0、1、2、0 后包装机的状态。
直接上代码
#include<bits/stdc++.h>
#include<queue>
#include<stack>
using namespace std;
int main() {
int n,m,s,i,j;
queue <char> a[101];
cin>>n>>m>>s;
char ch;
for(i=0; i<n; i++) {
for(j=0; j<m; j++) {
cin>>ch;
a[i].push(ch);
}
}
int b;
stack <char> c1;
queue <char> c2;
while(cin>>b) {
if(b==-1) {
break;
}
if(b!=0) {
if(a[b-1].size()>0) {
if(c1.size()>=s) {
c2.push(c1.top());
c1.pop();
}
c1.push(a[b-1].front());
a[b-1].pop();
}
} else {
if(c1.size()>0) {
c2.push(c1.top());
c1.pop();
}
}
}
int size=c2.size();
for(i=0; i<size; i++) {
cout<<c2.front();
c2.pop();
}
}