//
// Created by Genes on 12/26/2020.
//
// 小组队列
#include <iostream>
#include <queue>
using namespace std;
const int N = 1e3 + 10, M = 1e6 + 10;
int team_id[M];
int n, C = 1;
int main() {
while (cin >> n, n) {
queue<int> Q[N];
cout << "Scenario #" << C++ << endl;
for (int i = 1; i <= n; i++) {
int cnt;
cin >> cnt;
while (cnt--) {
int x;
cin >> x;
team_id[x] = i;
}
}
string op;
while (cin >> op, op != "STOP") {
if (op == "ENQUEUE") {
int x;
cin >> x;
int tid = team_id[x];
if (Q[tid].empty()) {
Q[0].push(tid);
}
Q[tid].push(x);
} else {
int tid = Q[0].front();
auto& q = Q[tid];
cout << q.front() << endl;
q.pop();
if (q.empty()) {
Q[0].pop();
}
}
}
cout << endl;
}
return 0;
}
请问大佬,这就是传说中的二维队列吗?
我也不知道这个是不是叫做二维队列, 这个题目需要用到很多队列, 为了方便, 直接开M个队列, 具体可以看蓝书的55页qwq
queue<queue<int>>
?