这题本身很简单 但是看了柳神的还是学到不少
auto用法 很方便
map容器 m->first,m->second;
要善用用flag标志
#include <iostream>
#include <set>
#include <map>
using namespace std;
const int maxn = 5010;
int main()
{
set<string> s;
map<string, int> m;
int n,k, num, ans = 0;
int flag = 0; //设置标志
string str;
cin >> n;
for(int i = 0; i < n; i++)
{
cin >> str;
s.insert(str);
}
cin >> k;
for(int i = 0; i < k; i++)
{
cin >> str >> num;
m[str] = num;
ans += num;
}
double ave = (1.0) * ans / k;
// for(auto it = m.begin(); it != m.end(); it++)
// {
// if(it->second > ave && s.find(it->first) == s.end())
// {
// cout << it->first << endl;
// flag = 1;
// }
// }
for(auto it : m)
{
if(it.second > ave && s.find(it.first) == s.end())
{
cout << it.first << endl;
flag = 1;
}
}
if(flag == 0) cout << "Bing Mei You";
return 0;
}