2021团体程序设计天梯赛 L2-1 包装机
思路:
栈和队列,轨道为队列筐为栈,按下筐按钮从筐中拿一个物品;按下轨道按钮,从轨道拿一个物品放到筐。若筐已满,则先从筐中拿一个物品;若轨道或筐为空,则按对应按钮不会发生任何事。
Tip:
注意语言顺序即可
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000 + 5;
queue<char> que[maxn];
stack<char> s;
int main() {
int n, m, smax;
cin >> n >> m >> smax;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++) {
char c;
cin >> c;
que[i].push(c);
}
int nop;
while (cin >> nop) {
if (nop == -1)
break;
if (nop == 0) {
if (!s.empty()) {
cout << s.top();
s.pop();
}
} else {
if (que[nop].empty())
continue;
if (s.size() == smax) {
cout << s.top();
s.pop();
}
s.push(que[nop].front());
que[nop].pop();
}
}
return 0;
}

浙公网安备 33010602011771号