#include <iostream>
#include <map>
#include <utility>
using namespace std;
int main()
{
int total=0;
int inp,inp1,inp2,orders,count;
multimap<int,pair<int,int>> soldiers;
multimap<int,pair<int,int>>::iterator it,itr;
pair<multimap<int, pair<int,int> >::iterator, multimap<int, pair<int,int> >::iterator> ppp;
cin>>total;
//read the soldiers
for(int i=1;i<total+1;i++)
{
cin >> inp;
soldiers.insert(make_pair(inp, pair<int,int>(i, 1)));
//soldiers[inp]= pair<int,int>(i, 1) ;
}
//cout<< "size"<<soldiers.size()<<endl;
cin >> orders;
//int total=soldiers.count(inp2);
for(int j=1; j<orders+1; j++)
{
cin >>inp1;
cin >>inp2;
//cout << inp1 <<":"<<inp2<<"count"<<soldiers.count(inp2)<<endl;
switch(inp1)
{
case 1:
//cout<<"inside 1:"<<endl;
ppp = soldiers.equal_range(inp2);
for (itr = ppp.first;itr != ppp.second;itr++)
{
((*itr).second).second =1 ;
}
break;
case 2:
//cout<<"inside 2:"<<endl;
ppp = soldiers.equal_range(inp2);
for (itr = ppp.first;itr != ppp.second;itr++)
{
((*itr).second).second =0 ;
}
break;
case 3:
//cout<<"inside 3"<<endl;
count=0;
ppp = soldiers.equal_range(inp2);
for (itr = ppp.first;itr != ppp.second;itr++)
{
if( ((*itr).second).second ==1 )
count++;
}
cout<<count<<endl;
break;
}
}
return 0;
}
#include <map>
#include <utility>
using namespace std;
int main()
{
int total=0;
int inp,inp1,inp2,orders,count;
multimap<int,pair<int,int>> soldiers;
multimap<int,pair<int,int>>::iterator it,itr;
pair<multimap<int, pair<int,int> >::iterator, multimap<int, pair<int,int> >::iterator> ppp;
cin>>total;
//read the soldiers
for(int i=1;i<total+1;i++)
{
cin >> inp;
soldiers.insert(make_pair(inp, pair<int,int>(i, 1)));
//soldiers[inp]= pair<int,int>(i, 1) ;
}
//cout<< "size"<<soldiers.size()<<endl;
cin >> orders;
//int total=soldiers.count(inp2);
for(int j=1; j<orders+1; j++)
{
cin >>inp1;
cin >>inp2;
//cout << inp1 <<":"<<inp2<<"count"<<soldiers.count(inp2)<<endl;
switch(inp1)
{
case 1:
//cout<<"inside 1:"<<endl;
ppp = soldiers.equal_range(inp2);
for (itr = ppp.first;itr != ppp.second;itr++)
{
((*itr).second).second =1 ;
}
break;
case 2:
//cout<<"inside 2:"<<endl;
ppp = soldiers.equal_range(inp2);
for (itr = ppp.first;itr != ppp.second;itr++)
{
((*itr).second).second =0 ;
}
break;
case 3:
//cout<<"inside 3"<<endl;
count=0;
ppp = soldiers.equal_range(inp2);
for (itr = ppp.first;itr != ppp.second;itr++)
{
if( ((*itr).second).second ==1 )
count++;
}
cout<<count<<endl;
break;
}
}
return 0;
}
No comments:
Post a Comment