• 【杭电】[1234]开门人和关门人


    这里写图片描述
    这里写图片描述

    也是挺重要的一题
    第一次用到的结构体
    在一些地方纠结了好久

    而且第一次没接触到sort
    所以写的比较长

    #include<stdio.h>
    #include<string.h>
    struct qd {
        char s[15];
        int sh;
        int sm;
        int ss;
        int eh;
        int em;
        int es;
    };
    int main() {
        int N,M;
        scanf("%d",&N);
        while(N--) {
            scanf("%d",&M);
            int i;
            struct qd a[M],b,e;
            for(i=0; i<M; i++)
                scanf("%s %d:%d:%d %d:%d:%d",&a[i].s,&a[i].sh,&a[i].sm,&a[i].ss,&a[i].eh,&a[i].em,&a[i].es);
            for(i=0; i<M; i++) {
                if(i==0) {
                    b=a[i];
                    e=a[i];
                } else {
                    if(a[i].sh<b.sh)
                        b=a[i];
                    else if(a[i].sh==b.sh) {
                        if(a[i].sm<b.sm)
                            b=a[i];
                        else if(a[i].sm==b.sm) {
                            if(a[i].ss<b.ss)
                                b=a[i];
                        }
                    }
                    if(a[i].eh>e.eh)
                        e=a[i];
                    else if(a[i].eh==e.eh) {
                        if(a[i].em>e.em)
                            e=a[i];
                        else if(a[i].em==e.em) {
                            if(a[i].es>e.es)
                                e=a[i];
                        }
                    }
                }
            }
            printf("%s %s\n",b,e);
        }
        return 0;
    }
    

    下面是后来写的sort版

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    struct qd {
        char s[20];
        char kai[10];
        char guan[10];
    };
    bool vsk(qd A,qd B) {
        return strcmp(A.kai,B.kai)<0;
    }
    bool vsg(qd A,qd B) {
        return strcmp(A.guan,B.guan)>0;
    }
    int main() {
        int N,M;
        scanf("%d",&N);
        while(N--) {
            scanf("%d",&M);
            int i;
            struct qd a[M];
            for(i=0; i<M; i++)
                scanf("%s %s %s",&a[i].s,&a[i].kai,&a[i].guan);
            sort(a,a+M,vsk);
            printf("%s ",a[0].s);
            sort(a,a+M,vsg);
            printf("%s\n",a[0].s);
        }
        return 0;
    }

    明显短了好多啊~
    C++的用法

    题目地址:【杭电】[1234]开门人和关门人

  • 相关阅读:
    1001 字符串“水”题(二进制,map,哈希)
    hzau 1210 Happiness
    hzau 1209 Deadline(贪心)
    hzau 1208 Color Circle(dfs)
    hzau 1207 Candies
    hzau 1206 MathematicalGame
    hzau 1205 Sequence Number(二分)
    hzau 1204 Escape from the Darkness
    Calculator 2
    Calculator
  • 原文地址:https://www.cnblogs.com/BoilTask/p/12570070.html
Copyright © 2020-2023  润新知