
题目描述
病人登记看病,编写一个程序,将登记的病人按照以下原则排出看病的先后顺序:
-
老年人(年龄\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
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)