• HDU1234 开门人和关门人(解法二)


    问题链接HDU1234 开门人和关门人

    问题简述:参见上述链接。

    问题分析之前所做的程序质量不高,所以重做该题的题解。上次使用了结构数组和排序,完全没有必要,一边读入数据,一边处理就可以解决问题。

    程序说明程序中时间转换为整数(秒单位),以便比较。

    参见链接HDU1234 开门人和关门人(旧版本)

    AC的C语言程序如下:
    /* HDU1234 开门人和关门人 */
    
    #include <stdio.h>
    #include <string.h>
    
    int main()
    {
        int n, m;
        int h, mi, s;
    
        char startname[20];
        char endname[20];
        int minstarttime;
        int maxendtime;
    
        char name[20];
        int starttime;
        int endtime;
    
        // 读入总天数(测试组数)
        scanf("%d", &n);
        while(n--) {
            // 读入记录数
            scanf("%d", &m);
    
            // 设置暂时的最小开门时间和最大关门时间
            minstarttime = 24 * 3600;
            maxendtime = 0;
    
            // 读入各个记录,并且求最小开门时间和最大关门时间
            for(int i=1; i<=m; i++) {
                scanf("%s %d:%d:%d", name, &h, &mi, &s);
                starttime = s + mi * 60 + h * 3600;
                if(starttime < minstarttime) {
                    minstarttime = starttime;
                    strcpy(startname, name);
                }
    
                scanf("%d:%d:%d", &h, &mi, &s);
                endtime = s + mi * 60 + h * 3600;
                if(endtime > maxendtime) {
                    maxendtime = endtime;
                    strcpy(endname, name);
                }
            }
    
            // 输出结果
            printf("%s %s
    ", startname, endname);
        }
    
        return 0;
    }



  • 相关阅读:
    解决Qt creator无法输入中文
    JSP 问题总结
    oracle锁与死锁概念,阻塞产生的原因以及解决方案
    QT学习记录
    使用函数式接口
    使用函数式接口来传递行为
    Prototype(原型)
    Singleton(单例)
    Factory
    Template
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7564621.html
Copyright © 2020-2023  润新知