PAT甲1006 Sign In and Sign Out (25)

#include <stdio.h>
#include <stdlib.h>
#include <cstdio>
#include <cstring>
#include <string>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <iostream>
#include <math.h>
#include <map> 
#include <vector>
using namespace std;

int N;

struct student
{
    int inh;
    int inm;
    int ins;
    int outh;
    int oum;
    int ous;
    char id[20];
}stu[100010];

bool cmp1(student a,student b)
{
    if(a.inh!=b.inh)return a.inh<b.inh;
    else if(a.inm!=b.inm)return a.inm<b.inm;
    else return a.ins<b.ins;
}

bool cmp2(student a,student b)
{
    if(a.outh!=b.outh)return a.outh<b.outh;
    else if(a.oum!=b.oum)return a.oum<b.oum;
    else return a.ous<b.ous;
}

int main()
{
    scanf("%d",&N);
    for(int i=0;i<N;i++)
    {
        scanf("%s",&stu[i].id);
        scanf("%d:%d:%d",&stu[i].inh,&stu[i].inm,&stu[i].ins);
        scanf("%d:%d:%d",&stu[i].outh,&stu[i].oum,&stu[i].ous);
    }
    sort(stu,stu+N,cmp1);
    printf("%s ",&stu[0].id);
    sort(stu,stu+N,cmp2);
    printf("%s\n",&stu[N-1].id);
    system("pause");
    return 0;
}

猜你喜欢

转载自blog.csdn.net/yhy489275918/article/details/80426547