由于题目并不需要队列中具体数值,所以只需要记录主队列和副队列各自数量即可。
需要注意的是,当主副队列数量相同时候(即副队列不缺元素时)要跳过不操作。
C++ 代码
#include<bits/stdc++.h>
using namespace std;
int n;
int main() {
cin >> n;
// 数组略慢
// int q[11] = {0};
vector<int> q(11, 0);
string op;
while(cin >> op) {
if(op == "add") {
int x;
cin >> x;
q[0] ++;
} else if (op == "sync") {
int x;
cin >> x;
// 如果主队列已经没有数可以加过来了
if (q[x] == q[0]) continue;
q[x] ++;
} else {
int res = q[0];
for(int i = 1; i < n; i ++) {
res = min(res, q[i]);
}
cout << res << endl;
}
}
return 0;
}