简单题,不多讲
计数题,就是将name哈希一下,最后找出值最大的(相等按ASCLL码小的来输出)
提前将name排序(根据ASCLL大小)字符串的hash用
存,插入、查询
,最后找最小的。
qwq
差不多PJT1的难度
:
# include <bits/stdc++.h>
using namespace std;
map<string,int>hashi;
int score[100];
string name[100];
int n,m;
int id(string a)
{
int tot=0;
for(int i=0;i<a.size();i++)
{
tot+=int(a[i]) ;
}
return tot;
}
bool comp(const string &a,const string &b)
{
return id(a)<id(b) ;
}
string sub(string a,int l,int r)
{
string ans="";
for(int i=l;i<=r;i++)
{
ans+=a[i];
}
return ans;
}
int main(void)
{
cin >> n;
for(int i=1;i<=n;i++)
{
cin >> name[i];
}
sort(name+1,name+n+1,comp) ;
for(int i=1;i<=n;i++)
{
hashi[name[i]]=i;
score[i]=0;
}
cin >> m;
getchar();
for(int i=1;i<=m;i++)
{
string s;
getline(cin,s) ;
int w=s.find(' ');
string w1=sub(s,0,w-1) ;
int _w=s.find(' ',w+1);
string w2=sub(s,w+1,_w-1) ;
if(w2=="I")
{
score[hashi[w1]]++;
}
else
{
score[hashi[w2]]++;
}
}
string ans="";
int maxl=INT_MIN;
for(int i=1;i<=n;i++)
{
if(score[i]>maxl)
{
maxl=score[i];
ans=name[i];
}
}
cout<<ans<<endl;
return 0;
}