• 题目1013:开门人和关门人


    题目描述:
        每天第一个到机房的人要把门打开,最后一个离开的人要把门关好。现有一堆杂乱的机房签到、签离记录,请根据记录找出当天开门和关门的人。
    输入:

        测试输入的第一行给出记录的总天数N ( N> 0 ),下面列出了N天的记录。 
        每天的记录在第一行给出记录的条目数M (M > 0 ),下面是M行,每行的格式为 

        证件号码 签到时间 签离时间 

        其中时间按“小时:分钟:秒钟”(各占2位)给出,证件号码是长度不超过15的字符串。

    输出:

        对每一天的记录输出1行,即当天开门和关门人的证件号码,中间用1空格分隔。 
        注意:在裁判的标准测试输入中,所有记录保证完整,每个人的签到时间在签离时间之前,且没有多人同时签到或者签离的情况。

    样例输入:
    3
    1
    ME3021112225321 00:00:00 23:59:59
    2
    EE301218 08:05:35 20:56:35
    MA301134 12:35:45 21:40:42
    3
    CS301111 15:30:28 17:00:10
    SC3021234 08:00:00 11:25:25
    CS301133 21:45:00 21:58:40
    样例输出:
    ME3021112225321 ME3021112225321
    EE301218 MA301134
    SC3021234 CS301133

    这道题本身没有什么难点。有一个技巧点:判断时间先后,可以直接进行字符串比较,而不必转化为数字后再进行比较

     AC代码:

     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <stdlib.h>
     4  
     5 struct Check{
     6     char nm[16];
     7     char arrive[10];
     8     char leave[10];
     9 } * check;
    10  
    11 int main(){
    12     int n, m;
    13     scanf("%d", &n);
    14     while(n--){
    15         scanf("%d", &m);
    16         check = (Check *)malloc(sizeof(Check) * m);
    17         for(int i = 0; i < m; i++){
    18             scanf("%s %s %s", check[i].nm, check[i].arrive, check[i].leave);
    19         }
    20         int min = 0, max = 0;
    21         for(int i = 1; i < m; i++){
    22             if(strcmp(check[i].arrive, check[min].arrive) < 0)
    23                 min = i;
    24             if(strcmp(check[i].leave, check[max].leave) > 0)
    25                 max = i;
    26         }
    27         printf("%s %s
    ", check[min].nm, check[max].nm);
    28     }
    29     return 0;
    30 }
    31 /**************************************************************
    32     Problem: 1013
    33     User: Qinger
    34     Language: C++
    35     Result: Accepted
    36     Time:0 ms
    37     Memory:1020 kb
    38 ****************************************************************/
  • 相关阅读:
    web前端优化之reflow(减少页面的回流)
    Javascript深拷贝
    MySQL 配置优化
    MySQ中Lmax_connections的合理设置
    Too many connections解决方案
    Linux 查看文件内容
    ON DUPLICATE KEY UPDATE
    jquery $.each 和for怎么跳出循环终止本次循环
    使用redis避免客户端频繁提交数据
    windows下为mysql添加日志
  • 原文地址:https://www.cnblogs.com/xyqhello/p/3649480.html
Copyright © 2020-2023  润新知