题目:
思路分析:
一个模拟题!
二个cmp 一个是数字大小!一个是string的大小!
代码实现:
const int MAX=10010;
struct node{
string s;
double val;
int is;
}e[MAX];
bool cmp(node a,node b){
return a.val>b.val;
}
bool cmp1(node a,node b){
return a.s<b.s;
}
map<string,int>mp;
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
string s;
cin>>s;
mp[s]=1;
}
cin>>n;
double sum=0;
for(int i=0;i<n;i++){
string s;
int num;
cin>>s>>num;
sum+=num;
e[i].s=s;
e[i].val=num;
}
sort(e,e+n,cmp);
double avg=sum/n;
for(int i=0;i<n;i++){
if(mp[e[i].s]==1) continue;
if(e[i].val>avg) e[i].is=1;
}
sort(e,e+n,cmp1);
int ans=0;
for(int i=0;i<n;i++){
if(e[i].is==1)
{
cout<<e[i].s<<endl;
ans++;
}
}
if(ans==0)
cout<<"Bing Mei You"<<endl;
}