1183:病人排队

简介: 1183:病人排队

1183:病人排队

时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

病人登记看病,编写一个程序,将登记的病人按照以下原则排出看病的先后顺序:

1.老年人(年龄 >= 60岁)比非老年人优先看病。

2.老年人按年龄从大到小的顺序看病,年龄相同的按登记的先后顺序排序。

3.非老年人按登记的先后顺序看病。

【输入】

第1行,输入一个小于100的正整数,表示病人的个数;

后面按照病人登记的先后顺序,每行输入一个病人的信息,包括:一个长度小于10的字符串表示病人的ID(每个病人的ID各不相同且只含数字和字母),一个整数表示病人的年龄,中间用单个空格隔开。

【输出】

按排好的看病顺序输出病人的ID,每行一个。

【输入样例】

5

021075 40

004003 15

010158 67

021033 75

102012 30

【输出样例】

021033

010158

021075

004003

102012

【来源】

No

1. #include<bits/stdc++.h> 
2. #include<iostream>
3. #include<string>
4. using namespace std;
5. struct pat{
6.  int age;
7.  string id;
8.  int num;
9. }s[102],m[102];
10. int pat_comp1(const pat &a,const pat &b){
11.   if(a.age==b.age)
12.     return a.num<b.num;
13.   else
14.     return a.age>b.age;
15. }
16. int pat_comp2(const pat &a,const pat &b){
17.     return a.num<b.num;
18. }
19. int main()
20. {
21.   int n,ag,b,i,j,t1=1,t2=1;
22.   string tep;
23.   cin>>n;
24.   for(i=1;i<=n;i++){
25.     cin>>tep>>ag;
26.     if(ag>=60){
27.       s[t1].id=tep;
28.       s[t1].age=ag;
29.       s[t1].num=t1;
30.       t1++; 
31.     }
32.     else{
33.       m[t2].id=tep;
34.       m[t2].age=ag;
35.       m[t2].num=t2;
36.       t2++;
37.     } 
38.   }
39.   sort(s+1,s+t1,pat_comp1);
40.   sort(m+1,m+t2,pat_comp2);
41.   for(i=1;i<t1;i++) cout<<s[i].id<<endl;
42.   for(i=1;i<t2;i++) cout<<m[i].id<<endl;
43.   return 0;
44. }

 

相关文章
|
6月前
看病要排队——HDU1873
看病要排队——HDU1873
|
11月前
|
人工智能 图形学
UnityAI——排队过窄洞
UnityAI——排队过窄洞
UnityAI——排队过窄洞
1319:【例6.1】排队接水 2020-11-30
1319:【例6.1】排队接水 2020-11-30
|
人工智能 BI
1371:看病
1371:看病
|
算法 调度
调度算法 | 先来先服务(超市排队结账模型)
在操作系统中,如何去衡量性能?我们先简化模型,只用一个性能指标去衡量——周转时间,周转时间的定义是任务完成时间减去任务到达系统的时间
169 0
|
机器学习/深度学习 存储 算法
排队打水算法实现
排队打水算法实现
小白鼠排队
小白鼠排队
155 0