某社会福利机构组织一项活动,参加的对象分为两类,一类是老年人(年龄≥60岁),另一类是年轻人(年龄<60岁)。但参加该项活动要排队等候,为了照顾老年人,排队等候时,老年人排到前面,年轻人排在后面,当老年人到来排队时,排到前面老年人排队部分的后面,年轻人到来排队时,排到整个队伍的最后。对于参加活动的n个人(5≤n≤15),建立并输出这n个人的排队的情况。
输入格式:
首先输入一个整数T,表示测试数据的组数,然后是T组测试数据。每组测试数据第一行输入一个整数n,表示有n个人,第二行输入n个整数ai(18≤ai≤80),表示活动参加者的年龄。
输出格式:
对于每组测试,在一行上输出排队的队伍信息(年龄),每两个数据之间留一个空格。
输入样例:
2
5
29 71 56 63 23
8
39 48 43 21 49 32 56 27
输出样例:
71 63 29 56 23
39 48 43 21 49 32 56 27
代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB
解题代码
#includeusing namespace std; int main() { int T,n; int num; list young,old; cin>>T; while(T--){ cin>>n; young.clear(); old.clear(); for(int i=0;i cin>>num; if(num>=60){ old.push_back(num); }else{ young.push_back(num); } } int l=0; while(!old.empty()){ if(l==0){ cout< cout<<" "< if(l==0){ cout< cout<<" "< 解题思路
也比较简单吧,用队列写,我觉着用两个队列写比较简单,也没多用别的,用了STL
库,不想写的太复杂,暂时就这样,挺简单的,大于等于60的放一个队列,小于60的放一个队列,然后输出的时候先输出大于等于60的队列。



