#include<iostream>
#include<algorithm>
#include<cmath>
#include<vector>
#include<map>
#include<set>
using namespace std;
typedef pair<double,string> PDS;
int main()
{
map<string,set<string> >b;
int n;cin>>n;
for(int i=0;i<n;i++)
{
string name,st;cin>>name>>st;
b[name].insert(st);
}
map<string,double> d;
for(auto &xx:b)
{
double sum=xx.second.size();
for(auto &x:xx.second)
d[x]+=1.0/sum;
}
vector<PDS> p;
for(auto &x:d) p.push_back({x.second,x.first});
sort(p.begin(),p.end(),[&](const PDS &A,const PDS &B){
if(fabs(A.first-B.first)<=1e-5) return A.second<B.second;
return A.first>B.first;
});
for(auto &x:p)
cout<<x.second<<endl;
return 0;
}
“战疫杯”大学生程序设计在线邀请赛(5)1 感染源在哪里
最新推荐文章于 2024-09-16 17:46:36 发布