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; }