zoukankan      html  css  js  c++  java
  • 1028. 人口普查

    1028. 人口普查(20)

    时间限制
    200 ms
    内存限制
    65536 kB
    代码长度限制
    8000 B
    判题程序
    Standard
    作者
    CHEN, Yue

    某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。

    这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老人,而今天是2014年9月6日,所以超过200岁的生日和未出生的生日都是不合理的,应该被过滤掉。

    输入格式:

    输入在第一行给出正整数N,取值在(0, 105];随后N行,每行给出1个人的姓名(由不超过5个英文字母组成的字符串)、以及按“yyyy/mm/dd”(即年/月/日)格式给出的生日。题目保证最年长和最年轻的人没有并列。

    输出格式:

    在一行中顺序输出有效生日的个数、最年长人和最年轻人的姓名,其间以空格分隔。

    输入样例:
    5
    John 2001/05/12
    Tom 1814/09/06
    Ann 2121/01/30
    James 1814/09/05
    Steve 1967/11/20
    
    输出样例:
    3 Tom John
     1 #include<stdio.h>
     2 #include<math.h>
     3 #include<stdlib.h>
     4 #include<string.h>
     5 struct man
     6 {
     7     char name[10];
     8     int year;
     9     int mon;
    10     int day;
    11 };
    12 man a[100010];
    13 
    14 bool ismore(man x, man y)
    15 {
    16     if(x.year != y.year)
    17         return x.year >= y.year;
    18     else if(x.mon != y.mon)
    19         return x.mon >= y.mon;
    20     else
    21         return x.day >= y.day;
    22 }
    23 
    24 bool isless(man x, man y)
    25 {
    26     if(x.year != y.year)
    27         return x.year <= y.year;
    28     else if(x.mon != y.mon)
    29         return x.mon <= y.mon;
    30     else
    31         return x.day <= y.day;
    32 }
    33 
    34 int main()
    35 {
    36     int i, n, count = 0;
    37     scanf("%d", &n);
    38     for(i = 0; i < n; i++)
    39     {
    40         scanf("%s%d/%d/%d", a[i].name, &a[i].year, &a[i].mon, &a[i].day);
    41     }
    42     man eldest, youngest, l, r;
    43     eldest.year = r.year = 2014;
    44     youngest.year = l.year = 1814;
    45     eldest.mon = youngest.mon = l.mon = r.mon = 9;
    46     eldest.day = youngest.day = l.day = r.day = 6;
    47     for(i = 0; i < n; i++)
    48     {
    49         if(ismore(a[i], l) && isless(a[i], r))
    50         {
    51             count++;
    52             if(isless(a[i], eldest))
    53             {
    54                 eldest = a[i];
    55             }
    56             if(ismore(a[i], youngest))
    57             {
    58                 youngest = a[i];
    59             }
    60         }
    61     }
    62     if(count == 0)
    63         printf("0
    ");
    64     else
    65         printf("%d %s %s
    ", count, eldest.name, youngest.name);
    66     return 0;
    67 }
  • 相关阅读:
    Linkerd 2.10(Step by Step)—将 GitOps 与 Linkerd 和 Argo CD 结合使用
    Linkerd 2.10(Step by Step)—多集群通信
    Linkerd 2.10(Step by Step)—使用 Kustomize 自定义 Linkerd 的配置
    Linkerd 2.10(Step by Step)—控制平面调试端点
    Linkerd 2.10(Step by Step)—配置超时
    Linkerd 2.10(Step by Step)—配置重试
    Linkerd 2.10(Step by Step)—配置代理并发
    本地正常运行,线上环境诡异异常原因集合
    Need to invoke method 'xxx' declared on target class 'yyy', but not found in any interface(s) of the exposed proxy type
    alpine 安装常用命令
  • 原文地址:https://www.cnblogs.com/yomman/p/4269048.html
Copyright © 2011-2022 走看看