1 solutions

  • 1
    @ 2023-11-22 22:24:25
    #include<bits/stdc++.h>
    using namespace std;
    
    struct node{
    int num;
    string a;
    int age;
    }m[105];//创建结构体变量,号码,名字和年龄
    
    bool cmp(node a,node b)
    {
    if(a.age>=60&&b.age>=60)//如果都是老年人
    {
    if(a.age!=b.age)//如果年龄不相等的话
    return a.age>b.age;//年龄大的在前
    else//如果年龄相等的话
    return a.num<b.num;//号码小的在前
    }
    else if(a.age<60&&b.age<60)//如果都是年轻人
    return a.num<b.num;//号码小的在前
    else //如果是老年人和年轻人的话
    return a.age>b.age;//年龄大的在前
    }
    
    int main()
    {
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
    cin>>m[i].a>>m[i].age;
    m[i].num=i;
    }
    
    sort(m+1,m+n+1,cmp);
    
    for(int i=1;i<=n;i++)
    cout<<m[i].a<<endl;
    return 0;
    
    }
    
    • 1

    Information

    ID
    6835
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    6
    Tags
    (None)
    # Submissions
    29
    Accepted
    10
    Uploaded By