# include <iostream>
# include <set>
# include <string>
# include <cstdio>
using namespace std;
multiset<int> storage;
set<int> history;
void commandTranslator(string& s, int n)
{
if ( s == "add" )
{
storage.insert(n);
history.insert(n);
printf("%d\n",storage.count(n));
}
if ( s == "del" )
{
printf("%d\n",storage.erase(n));
}
if ( s == "ask" )
{
set<int>::iterator i;
i = history.find(n);
if ( i != history.end() )
{
printf("1 ");
printf("%d\n",storage.count(n));
}
else
{
printf("0 0\n");
}
}
}
int main()
{
int n = 0;
char input[100];
string inputCommand;
int inputNum = 0;
cin >> n;
for ( int i = 0; i < n; i++ )
{
scanf("%s%d",input,&inputNum);
inputCommand = input;
commandTranslator(inputCommand,inputNum);
}
return 0;
}OPENJUDGE SET
最新推荐文章于 2025-01-08 23:24:46 发布
本文介绍了一个使用C++实现的命令解析器,能够处理add、del和ask三种命令,通过multiset进行数据存储并支持快速查找和删除。代码展示了如何使用标准库中的set和multiset来高效地管理整数集合。
1375

被折叠的 条评论
为什么被折叠?



