5.6测试点不对

P1104 生日

Qian_Me @ 2024-12-04 23:03:48

5、6测试点错了,5测试点下载并且试着输入了,结果是对的,但是提交就是现实5.6测试点错了,不知道为什么提交就错了

// 洛谷P1104 生日
// 思路:
// 1. 使用 结构体数组 存储人员信息
// 2. 按照 年龄 进行 排序 --> 使用sort函数,比较函数规则:先按照年,再按照月,再按照日,如果都相等,则先输入的在前
// 3. 输出 结构体数组 中 第 k 个 元素的 姓名
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;

// 定义结构体 --> 存储 姓名 年月日 输入顺序
struct ddd{
    string name;
    int year, month, day;
    int num; // 输入顺序 -> 为了方便排序:若年龄相同,则 先输入的 排在 前面
};
// 比较函数 --> 按照年龄进行排序的规则
bool cmp( ddd a, ddd b ){
    if( a.year != b.year )
        return a.year < b.year; // 年 小的在前 即 年龄大的在前
    else if( a.month != b.month )
        return a.month < b.month; // 月 小的在前 即 年龄大的在前
    else if( a.day != b.day )
        return a.day < b.day; // 日 小的在前,即 年龄大的在前
    else
        return a.num < b.num; // 输入顺序 小的在前 即 如果年龄完全相等,则先输入的在前
}
int main( void ){
    int n; // 总人数
    ddd peo[ 100 ]; // 存储人员信息
    cin >> n; // 输入总人数
     // 输入人员信息
    for( int i = 0; i < n; i ++ ){
        cin >> peo[ i ].name >> peo[ i ].year >> peo[ i ].month >> peo[ i ].day;
        peo[ i ].num = i + 1; // 记录输入顺序
    }
    sort( peo, peo + n, cmp ); // 按照年龄进行排序
    for( int i = 0; i < n; i ++ ){
        cout << peo[ i ].name << endl;
    }
    cout << endl;
    return 0;
}

by _Vistion_ @ 2024-12-04 23:23:51


// 洛谷P1104 生日
// 思路:
// 1. 使用 结构体数组 存储人员信息
// 2. 按照 年龄 进行 排序 --> 使用sort函数,比较函数规则:先按照年,再按照月,再按照日,如果都相等,则先输入的在前
// 3. 输出 结构体数组 中 第 k 个 元素的 姓名
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;

// 定义结构体 --> 存储 姓名 年月日 输入顺序
struct ddd{
    string name;
    int year, month, day;
    int num; // 输入顺序 -> 为了方便排序:若年龄相同,则 先输入的 排在 前面
};
// 比较函数 --> 按照年龄进行排序的规则
bool cmp( ddd a, ddd b ){
    if( a.year != b.year )
        return a.year < b.year; // 年 小的在前 即 年龄大的在前
    else if( a.month != b.month )
        return a.month < b.month; // 月 小的在前 即 年龄大的在前
    else if( a.day != b.day )
        return a.day < b.day; // 日 小的在前,即 年龄大的在前
    else
        return a.num > b.num; // 输入顺序 小的在前 即 如果年龄完全相等,则先输入的在前
        //序号较大的排前面
}
int main( void ) {
    int n; // 总人数
    ddd peo[ 105 ]; // 存储人员信息
    cin >> n; // 输入总人数
     // 输入人员信息
    for( int i = 0; i < n; i ++ ){
        cin >> peo[ i ].name >> peo[ i ].year >> peo[ i ].month >> peo[ i ].day;
        peo[ i ].num = i; // 记录输入顺序
        //不用+1,=i就可以了,没有影响
    }
    sort( peo, peo + n, cmp ); // 按照年龄进行排序
    for( int i = 0; i < n; i ++ ){
        cout << peo[ i ].name << endl;
    }
    cout << endl;
    return 0;
}

by _Vistion_ @ 2024-12-04 23:24:52

@Qian_Me

改好了,求关qwq


by Qian_Me @ 2024-12-05 22:10:08

@Vistion 感谢感谢,已关注


|