题解 | #最小年龄的3个职工#

最小年龄的3个职工

https://www.nowcoder.com/practice/a9fa482eb05149cdbad88689e3cb5f66

#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
class person{
    public:
        int age;
        int no;
        string name;
        person(int age,int no,string name){
            this->age=age;
            this->name=name;
            this->no=no;
        }
        void say(){
            cout<<no<<" "<<name<<" "<<age<<endl;
        }   

};
bool cmp(person p1,person p2){
    if(p1.age!=p2.age){
        return p1.age<p2.age;
    }else if(p1.no!=p2.no){
        return p1.no<p2.no;
    }else{
        return p1.name<p2.name;
    }
}
int main() {
    int n;cin>>n;
    vector<person>v;
    while(n--){
        int no,age;string name;
        cin>>no>>name>>age;
        person p(age,no,name);
        v.push_back(p);
    }
    sort(v.begin(),v.end(),cmp);
    int count=0;
    for(int i =0;i<v.size();i++){
        if(count==3)return 0;
        v[i].say();
        count++;
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务