map是按第一个关键字进行排序的。map<string , int>是按string字典序排
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <queue>
#include <stack>
#include <vector>
#include <map>
using namespace std;
int main()
{
int n , m;
while(cin >> n )
{
map<string , string>M;
map<string , int>M1;
string name , party;
getchar();
for(int i = 0 ; i < n ; i ++ )
{
getline(cin , name);
getline(cin , party);
M[name] = party;
}
cin >> m;
getchar();
for(int i = 0 ; i < m ; i ++ )
{
getline(cin , name);
M1[name]++;
}
map<string , int>::iterator it;
int sum = -1;
int dou = 0;
string res;
for(it = M1.begin() ; it != M1.end() ; it ++ )
{
if(it -> second > sum)
{
sum = it -> second;
res = it -> first;
dou = 0;
}
else if(it -> second == sum)
{
dou = 1;
}
}
if(dou) cout << "tie" << endl;
else cout << M[res] << endl;
}
}