感染新病毒后,来医院就诊的病人越来越多,每位病人包括的信息如下:姓名、病重程度和年龄。 对于来就诊的病人,医院按照如下规则对病人进行排序并进行诊治,具体规则为:病重程度高的优先诊治,同样病重程度,优先诊治年龄大的,如果年龄也相同,优先诊治名字按照字典顺序排在前面的。现在给出n个病人的信息,请编程输出排序后病人的信息。 详见代码:#include #include #include using namespace std; struct Patient {
string name;
int high;
int year;
}; bool cmp(Patient a,Patient b) {
if(a.high!=b.high) {
return a.high > b.high;
} else if(a.year!=b.year)
{
return a.year>b.year;
} else {
return a.name < b.name;
}
} int main() {
Patient patient[1000];
int n,i;
cin>>n;
for(i=0;i<n;i++)
{
cin>>patient[i].name>>patient[i].high>>patient[i].year;
}
sort(patient,patient+n,cmp);
for(i=0;i<n;i++)
{
cout<<patient[i].name<<" "<<patient[i].high<<" "<<patient[i].year<<endl;
}
return 0;
}