在函数初始化时记得在里面初始化,并且末尾不能加分号,第二点,在输入m,n分数时,不能使用+号,直接使用等号,
#include<iostream>
#include<vector>
#include<map>
#include<algorithm>
#include<cstdio>
using namespace std;
struct node{
string str;
int p,m,n,ans;
node(string s="",int a=-1,int b=-1,int c=-1,int d=0):str(s),p(a),m(b),n(c),ans(d){}
friend bool operator <(node a,node b)
{
if(a.ans!=b.ans) return a.ans>b.ans;
else return a.str<b.str;
}
};
int main()
{
int p,m,n;
//freopen("1080.txt","r",stdin);
cin>>p>>m>>n;
string str;int x;
map<string,node> mp;
for(int i=0;i<p;i++)
{
cin>>str>>x;
mp[str]=node(str,x,-1,-1,0);
}
for(int i=0;i<m;i++)
{
cin>>str>>x;
if(mp.count(str))
mp[str].m=x;
else
mp[str]=node(str,-1,x,-1,0);
}
for(int i=0;i<n;i++)
{
cin>>str>>x;
if(mp.count(str))
mp[str].n=x;
else
mp[str]=node(str,-1,-1,x,0);
}
vector<node> v;
for(auto &x:mp)
{
node re=x.second;
if(re.p<200) continue;
re.ans=re.m>re.n?(int)(re.m*0.4+re.n*0.6+0.5):re.n;
if(re.ans<60) continue;
v.push_back(re);
}
sort(v.begin(),v.end());
for(int i=0;i<v.size();i++)
{
cout<<v[i].str<<" "<<v[i].p<<" "<<v[i].m<<" "<<v[i].n<<" "<<v[i].ans<<endl;
}
return 0;
}