注意用到的结构 map<int,vector<int> > ,sort就行了。
#include <iostream>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;
int main()
{
int n,p,a,sum,mid,i;
map<int,vector<int> >::iterator mit;
while (cin>>n)
{
map<int,vector<int> > m;
for(i=1;i<=n;i++)
{
cin>>p>>a;
m[p].push_back(a);
}
for(mit=m.begin();mit!=m.end();mit++)
{
sort( mit->second.begin(), mit->second.end() );
sum=mit->second.size();
if(!(sum&1)) mid=(mit->second[sum/2-1]+mit->second[sum/2])/2;
else mid=mit->second[(sum-1)/2];
cout<<mit->first<<" "<<mid<<endl;
}
}
return 0;
}