P1104 生日
本文最后更新于 38 天前,其中的信息可能已经有所发展或是发生改变。

题目描述

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

输入格式

输入共有 n+1 行,

第 1 行为 OI 组总人数 n

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

输出格式

输出共有 n 行,即 n 个年龄从大到小同学的姓名(如果有两个同学年龄相同,输入靠后的同学先输出)。

(打分题目,喜欢输入靠后的先输出)

#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
int pre_days[12]={0,31,60,91,121,152,182,213,244,274,305,335};
int main(){
    int n;
    cin>>n;
    vector<string> name(n);
    vector<int> year(n);
    vector<int> month(n);
    vector<int> day(n);
    vector<int> total_day(n);
    for(int i = 0;i<n;i++){
        cin>>name[i]>>year[i]>>month[i]>>day[i];
        total_day[i]=366*year[i]+pre_days[month[i]-1]+day[i];
    }
    for(int i = 0;i< n-1;i++){
        for(int j = 0;j<n-1-i;j++){
            if(total_day[j]>total_day[j+1]){
                swap(name[j],name[j+1]);
                swap(total_day[j],total_day[j+1]);
            }
        }
    }
    for(int i = 0;i< n-1;i++){
        for(int j = 0;j<n-1-i;j++){
            if(total_day[j]==total_day[j+1]){
                swap(name[j],name[j+1]);
                swap(total_day[j],total_day[j+1]);
            }
        }
    }
    
    
    for(int i = 0;i < n;i++){
        cout<<name[i]<<endl;
    }
    
    return 0;
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇