问题标题: 酷町堂:1478 银行业务排序新系统

0
0
已解决
芮奥运
芮奥运
高级光能
高级光能

 

1478银行业务排序新系统

1478   银行业务排序新系统

题目描述 Description

背景:生活中,去银行办理相关业务都是在大厅取号排队等候,取号号码一般是四位数(1000~9999),先来的取小号,后来的取大号。取号的越小越优先办理业务。 为了弘扬中华传统美德,某银行准备开发一套新的业务排序系统,排序要求如下:老年人(年龄>=60)比非老年人优先办理 业务;老年人中按年龄从大到小优先排序,若年龄相同的按照取号的顺序排序;非老年人直接按取号顺序排序。请聪明的你设计这套系统。

输入描述 Input Description

输入为n+1行;
第一行输入整数n(0<n<=1000),表示当前有n个人前来办理业务;
后面的n行,输入取号的号码和此人的年龄,两个整数之间用空格隔开。

输出描述 Output Description

输出为n行,表示排好队的顺序。

样例输入 Sample Input

 

5
1000 15
1001 61
1003 67
1004 33
1005 22

样例输出 Sample Output

 

1003
1001
1000
1004
1005

 

 

 

#include<bits/stdc++.h>
using namespace std;
bool cmp(int a,int b)
{
    return a>b;
}
int main()
{
    long long int n,a[100010],b[100010],f[100010],l[100010],m=0,ml=0;
    cin>>n;
    for(int i=1;i<=n;i++)cin>>a[i]>>b[i];
    for(int i=1;i<=n;i++)
    {
        if(b[i]>=60)      
        {
            f[i]=a[i];
            m++;
        }
        else if(b[i]<60)
        {     
            l[i]=a[i];
            ml++;
        }
    }
    sort(f+1,f+m+1,cmp);
    for(int i=1;i<=m;i++)
    cout<<f[i]<<endl;
    sort(l+1,l+ml+1);
    for(int i=1;i<=ml;i++)
    cout<<l[i]<<endl;
    return 0;
}
 
 


0
0
0
0
我要回答