PAT甲级 1006 Sign In and Sign Out (25 分)

题目说明:

用户访问系统,找出最早访问和最晚离开的人

输入输出解释:

Sample Input:

3 //共三个用户
CS301111 15:30:28 17:00:10 //用户名、访问时间离开时间
SC3021234 08:00:00 11:25:25
CS301133 21:45:00 21:58:40

Sample Output:

SC3021234 CS301133 //SC3021234 8点访问系统,最早;CS301133 21点58分离开系统,最晚

思路:

将每个user存入vector数组,根据in的时间排序一次,输出最小值user的ID,out相反

#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;

struct users
{
    string ID;
    string in, out;
};
bool cmp_in(users u1, users u2)
{
    return u1.in < u2.in;
}
bool cmp_out(users u1, users u2)
{
    return u1.out > u2.out;
}
int main()
{
    int n;
    cin>>n;
    vector<users>u(n);
    for(int i = 0; i < n; i++)
    {
       
       string t1, t2, t3;
       cin>>t1>>t2>>t3;
       u[i].ID = t1;
       u[i].in = t2;
       u[i].out = t3;
    }
    sort(u.begin(), u.end(), cmp_in);
    cout<<u[0].ID<<' ';
    sort(u.begin(), u.end(), cmp_out);
    cout<<u[0].ID;
}

结果:

PAT甲级 1006 Sign In and Sign Out (25 分)

上一篇:oracle中存储过程的异常处理


下一篇:金蝶K3 SQL报表系列-BOM成本明细表