这个题目写的太不容易了
#include<iostream>
#include<vector>
#include<unordered_map>
#include<algorithm>
using namespace std;
struct st
{
string id;
int p,m,f,g;
};
bool cmp(st a,st b)
{
return a.g!=b.g?a.g>b.g:a.id<b.id;
}
vector<st> pv,ans;
unordered_map<string,int>q;
int main()
{
int n,m,k,cnt=1;
cin>>n>>m>>k;
for(int i=0;i<n;++i)
{
string s;
int p;
cin>>s>>p;
if(p>=200)
{
pv.push_back(st{s,p,-1,-1,0});
q[s]=cnt++;
}
}
for(int i=0;i<m;++i)
{
st s;
cin>>s.id>>s.m;
if(q[s.id])
{
pv[q[s.id]-1].m=s.m;
}
}
for(int i=0;i<k;++i)
{
st s;
cin>>s.id>>s.f;
if(q[s.id]) pv[q[s.id]-1].f=s.f;
}
for(auto s:pv)
{
if(s.m<=s.f) s.g=s.f;
else s.g=s.m*0.4+s.f*0.6+0.5;
if(s.g>=60) ans.push_back(s);
}
sort(ans.begin(),ans.end(),cmp);
for(auto s:ans)
cout<<s.id<<" "<<s.p<<" "<<s.m<<" "<<s.f<<" "<<s.g<<endl;
return 0;
}