题目描述
病人登记看病,编写一个程序,将登记的病人按照以下原则排出看病的先后顺序:
-
老年人(年龄ge60岁)比非老年人优先看病。
-
老年人按年龄从大到小的顺序看病,年龄相同的按登记的先后顺序排序。
-
非老年人按登记的先后顺序看病。
输入格式
第 1 行,输入一个小于 100100 的正整数,表示病人的个数;
后面按照病人登记的先后顺序,每行输入一个病人的信息,包括:一个长度小于 1010 的字符串表示病人的 ID(每个病人的 ID 各不相同且只含数字和字母),一个整数表示病人的年龄,中间用单个空格隔开。
输出格式
按排好的看病顺序输出病人的 ID,每行一个。
输入数据 1
5 021075 40 004003 15 010158 67 021033 75 102012 30
输出数据 1
021033 010158 021075 004003 102012
代码
#include#include #include using namespace std; string c; int n; struct point { string id; int age; int flag; }ans[105],temp[105]; bool cmp(point x,point y) { return x.age>y.age; } int main() { cin>>n; for(int i=0;i >c>>j; ans[i].age=j; ans[i].id=c; ans[i].flag=0; } int cnt=0; for(int i=0;i =60) { temp[cnt].age=ans[i].age; temp[cnt++].id=ans[i].id; ans[i].flag=1; } } //sort(temp,temp+cnt,cmp); for(int i=0;i



