本题巧妙的点在于:
并不需要真正地存入数据或同步数据,而是可以转化为存入数量和同步数量。
代码实现:
#include <bits/stdc++.h>
using namespace std;
int n;
int q[15];
int main()
{
cin.tie(0);
ios::sync_with_stdio(false);
cin >> n;
string op;
while(cin >> op)
{
if(op == "add")
{
int x;
cin >> x;
q[0] ++; //0号节点数量加1,并不需要真正的把数据存入
}
else if(op == "sync")
{
int x;
cin >> x;
if(q[x] == q[0]) continue; //若x号副结点与主节点数量相同,说明已经同步完成
else q[x] ++;
}
else
{
cout << *min_element(q, q + n) << endl; //输出最小同步数量
}
}
return 0;
}