L2-037 包装机

纯模拟。

#include <bits/stdc++.h>
using namespace std;
queue<char> qu[200];
int main() {
	int n, m, cap;
	cin >> n >> m >> cap;//轨道数量 初始物品数量 
	cin.get();
	string s;
	for (int i = 1; i <= n; i++) {//第i条轨道
		getline(cin, s);
		for (int j = 0; j < s.size(); j++) {
			qu[i].push(s[j]);
		}
	}
	vector<char> lanzi;//篮子
	//从指定轨道上弹出
	while (cin >> n && n != -1) {
		if (n == 0) {
			if (lanzi.empty()) continue;
			char tc = lanzi.back();
			lanzi.pop_back();//从篮子放到流水线
			cout << tc;
		}
		else {
			if (qu[n].empty()) continue;//如果是空的没办法弹出
			char shuzi = qu[n].front();
			qu[n].pop();
			//检查篮子是否已满
			if (lanzi.size() >= cap) {
				char tc = lanzi.back();
				lanzi.pop_back();//放到流水线
				cout << tc;
				lanzi.push_back(shuzi);
			}
			else {
				//直接放到篮子里面
				lanzi.push_back(shuzi);
			}
		}
	}
	return 0;
}
posted @ 2024-03-22 15:13  YuKiCheng  阅读(10)  评论(0编辑  收藏  举报