1183 病人排隊

2021-08-25 14:05:29 字數 1115 閱讀 2741

時間限制: 1000 ms 記憶體限制: 65536 kb

提交數: 3105 通過數: 1213

病人登記看病,編寫乙個程式,將登記的病人按照以下原則排出看病的先後順序:

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

#include 

#include

using

namespace

std;

int main()

b[202];

bingren t;

int n,q=0;

cin>>n;

for(int i=0;icin>>b[i].id>>b[i].age;

q++;

b[i].que=q; //記錄誰先輸入

}for(int i=0;i1;i++)

else

if(b[i].age==b[j].age&&b[i].que>b[j].que) //如果年齡相同,按登記先後順序排序 }}

for(int i=0;i//先輸入年齡大於60

這道題有很多解題思路,我沒有按照題目那樣來解題,因為登記先後順序不需要進行排序,只用不管就行,所以只要對年齡》=60的進行排序即可,由於在排序的時候可能將登記順序弄亂了,所以要對老年人年齡相等的進行登記順序先後進行排序,最後先輸入老年人再輸入年輕人即可

1183 病人排隊

1183 病人排隊 時間限制 1000 ms 記憶體限制 65536 kb 題目描述 病人登記看病,編寫乙個程式,將登記的病人按照以下原則排出看病的先後順序 1.老年人 年齡 60歲 比非老年人優先看病。2.老年人按年齡從大到小的順序看病,年齡相同的按登記的先後順序排序。3.非老年人按登記的先後順序...

資訊奧賽一本通 1183病人排隊

1183 病人排隊 題目描述 病人登記看病,編寫乙個程式,將登記的病人按照以下原則排出看病的先後順序 1.老年人 年齡 60歲 比非老年人優先看病。2.老年人按年齡從大到小的順序看病,年齡相同的按登記的先後順序排序。3.非老年人按登記的先後順序看病。輸入 第1行,輸入乙個小於100的正整數,表示病人...

08 病人排隊

name 08 病人排隊 author 巧若拙 description 描述病人登記看病,編寫乙個程式,將登記的病人按照以下原則排出看病的先後順序 1.老年人 年齡 60歲 比非老年人優先看病。2.老年人按年齡從大到小的順序看病,年齡相同的按登記的先後順序排序。3.非老年人按登記的先後順序看病。輸入...