41(multiset)
1 #include <iostream> 2 #include <set> 3 #include <cstdio> 4 using namespace std; 5 bool wasAdd[100001]; 6 7 int main(){ 8 multiset<int> mset; 9 int n,x;string order; 10 scanf("%d",&n); 11 while(n --){ 12 cin >> order >> x; 13 if(order == "add"){ 14 mset.insert(x); 15 wasAdd[x] = true; 16 printf("%d\n",mset.count(x)); 17 } 18 else if(order == "del"){ 19 printf("%d\n",mset.erase(x)); 20 } 21 else{ //ask 22 int t = wasAdd[x] == false ? 0 : 1; 23 printf("%d ",t); 24 if(t == 1) printf("%d\n",mset.count(x)); 25 else printf("0\n"); 26 } 27 } 28 return 0; 29 }
1 #include <iostream> 2 #include <set> 3 #include <cstdio> 4 using namespace std; 5 6 int main(){ 7 multiset<int> mset; 8 set<int> set2; 9 int n,x;string order; 10 scanf("%d",&n); 11 while(n --){ 12 cin >> order >> x; 13 switch(order[1]){ 14 case 'd': 15 mset.insert(x); 16 set2.insert(x); 17 printf("%d\n",mset.count(x)); 18 break; 19 case 'e': 20 printf("%d\n",mset.erase(x)); 21 break; 22 case 's': 23 int t = set2.find(x) == set2.end() ? 0 : 1; 24 printf("%d ",t); 25 if(t == 1) printf("%d\n",mset.count(x)); 26 else printf("0\n"); 27 break; 28 } 29 } 30 return 0; 31 }