当前位置 博文首页 > 文章内容

    洛谷-P1104 生日

    作者: 栏目:未分类 时间:2020-08-17 9:04:30

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    洛谷-P1104 生日

    原题链接:https://www.luogu.com.cn/problem/P1104


    题目描述

    cjf君想调查学校OI组每个同学的生日,并按照从大到小的顺序排序。但cjf君最近作业很多,没有时间,所以请你帮她排序。

    输入格式

    \(2\)行,

    \(1\)行为OI组总人数\(n\)

    \(2\)行至第\(n+1\)行分别是每人的姓名\(s\)、出生年\(y\)、月\(m\)、日\(d\)

    输出格式

    \(n\)行,

    \(n\)个生日从大到小同学的姓名。(如果有两个同学生日相同,输入靠后的同学先输出)

    输入输出样例

    输入 #1

    3
    Yangchu 1992 4 23
    Qiujingya 1993 10 13
    Luowen 1991 8 1
    

    输出 #1

    Luowen
    Yangchu
    Qiujingya
    

    说明/提示

    数据规模

    \(1<n<100\)

    \(length(s)<20\)

    C++代码

    #include <iostream>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    
    struct node {
        string s;
        int id, y, m, d;
    }student[100];
    
    bool cmp(node a, node b) {
        if (a.y == b.y)
            if (a.m == b.m)
                if (a.d == b.d)
                    return a.id > b.id;
                else
                    return a.d < b.d;
            else
                return a.m < b.m;
        else
            return a.y < b.y;
    }
    
    int main() {
        int n;
        cin >> n;
        for (int i=0; i<n; ++i) {
            student[i].id = i;
            cin >> student[i].s
                >> student[i].y
                >> student[i].m
                >> student[i].d;
        }
        sort(student, student+n, cmp);
        for (int i=0; i<n; ++i)
            cout << student[i].s << endl;
        return 0;
    }