3 条题解

  • 1
    @ 2025-4-26 10:16:05
    struct P {
        string id;
        int a1;
        int o1;//记录顺序
    bool cmp(P a, P b) {
        if(a.a1 >= 60 && b.a1 >= 60) {
    //对60岁以上进行排序
            if(a.a1 == b.a1) return a.o1 <b.o1;
            return a.a1 > b.a1;//否则正常
        }
    
        if(a.a1 >= 60) return true;
        if(b.a1 >= 60) return false;
        return a.o1 < b.o1;
    }
    for(int i = 0; i < n; i++) {
            cin >> p[i].id >> p[i].a1;
            p[i].o1 = i;//记录顺序
        }
    sort(p, p + n, cmp);
        for(int i = 0; i < n; i++)
            cout << p[i].id << endl;
    
    • 0
      @ 2025-4-26 11:45:11

      #include<bits/stdc++.h> using namespace std;

      struct a { string name; int x; };

      int main() { int n; cin>>n;

      a A[n],B[n];
      
      for(int i=0;i<n;i++)
      {
      	cin>>A[i].name; B[i].name=A[i].name;
      	cin>>A[i].x; B[i].x=A[i].x;
      }
      
      for(int i=0;i<n;i++)
      	for(int j=0;j<n;j++)		
      		if(A[i].x>A[j].x)
      			swap(A[i],A[j]);
      	
      for(int i=0;i<n;i++)
      	if(A[i].x>=60)
      		cout<<A[i].name<<endl;	
      			
      for(int i=0;i<n;i++)
      	if(B[i].x<60)
      		cout<<B[i].name<<endl;	
      return 0;
      

      }

      • 0
        @ 2025-4-26 11:40:41
        bool cmp(Peo a, Peo b)
        {
            if(a.age >= 60 && b.age >= 60)//如果都是老人 
            {
                if(a.age == b.age)//如果年龄相同 
                    return a.num < b.num;//序号小的在前面
                else
                    return a.age > b.age;//年龄大的在前面 
            }
            else if(a.age < 60 && b.age < 60)//如果都不是老人 
                return a.num < b.num;//序号小的在前面
            else//一个老人一个不是老人 
                return a.age > b.age;//老人年龄大,在前面 
                
        }
        
        • 1

        信息

        ID
        507
        时间
        1000ms
        内存
        256MiB
        难度
        7
        标签
        (无)
        递交数
        48
        已通过
        12
        上传者