题解:P11043 [蓝桥杯 2024 省 Java B] 分布式队列
xueshengyi · · 题解
这个题完全不需要管队列中的元素值,只需要记录每个队列的长度即可。
开一个一维数组记录长度。
当输入为 add 时,0 号节点的长度加一。
当输入为 sync 时,设输入的数为
每次询问只需输出队列长度的最小值即可。
#include <bits/stdc++.h>
using namespace std;
#define For(i,x,y,...) for(long long i=(x),##__VA_ARGS__;i<=(y);++i)
#define foR(i,x,y,...) for(int i=(x),##__VA_ARGS__;i>=(y);--i)
#define Rep(i,x,y,...) for(int i=(x),##__VA_ARGS__;i<(y);++i)
#define endl '\n'
#define debug(...)
#define debug1(a,i,...) cout<<i<<" "<<a[i]<<endl;
typedef long long ll;
#define fi first
#define se second
#define PII pair<int,int>
#define me(s,x) memset(s,x,sizeof s)
#define pb emplace_back
template<typename T=int>T read(){T x;cin>>x;return x;}
const int mod=998244353;
struct mint{
int x;mint(int x=0):x(x<0?x+mod:x<mod?x:x-mod){}
mint(ll y){y%=mod,x=y<0?y+mod:y;}
mint& operator += (const mint &y){x=x+y.x<mod?x+y.x:x+y.x-mod;return *this;}
mint& operator -= (const mint &y){x=x<y.x?x-y.x+mod:x-y.x;return *this;}
mint& operator *= (const mint &y){x=1ll*x*y.x%mod;return *this;}
friend mint operator + (mint x,const mint &y){return x+y;}
friend mint operator - (mint x,const mint &y){return x-y;}
friend mint operator * (mint x,const mint &y){return x*y;}
};mint Pow(mint x,ll y=mod-2){mint z(1);for(;y;y>>=1,x*=x)if(y&1)z*=x;return z;}
int q[15];
void MAIN(){
int n;
cin>>n;
string op;
int x;
while(cin>>op){
if(op=="add"){
cin>>x;
q[0]++;
}
else if(op=="sync"){
cin>>x;
q[x]++;
}
else{
cout<<*min_element(q,q+n)<<endl;
}
}
}signed main(){
int t=1;while(t--){
MAIN();
}
return 0;
}