時間限制: 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.非老年人按登記的先後順序看病。輸入...