1028. 인구센서스(20)
시간 제한
200 ms
메모리 제한
65536 kB
코드 길이 제한
8000 B
판정 절차
Standard
작자
CHEN, Yue
모 도시에서 인구 조사를 하여 전체 주민의 생일을 맞았다.지금 당신이 프로그램을 써서 마을에서 가장 나이가 많고 가장 젊은 사람을 찾아내세요.
여기에 모든 입력 날짜가 합법적인 것을 확보하지만 반드시 합리적인 것은 아니다. 마을에 200세를 넘지 않은 노인이 없고 오늘이 2014년 9월 6일이라고 가정하면 200세를 넘은 생일과 미출생 생일은 모두 불합리하고 여과되어야 한다.
입력 형식:
첫 번째 줄에 정수 N을 입력하고 값을 (0,105]로 받습니다. 그 다음에 N 줄은 한 사람의 이름(영문 자모 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
4
#include <stdio.h>
#include <string.h>
typedef struct Birthday{
char name[6];
char day[11];
}Birthday;
Birthday data[100000];
int main() {
freopen("in", "r", stdin);
int n;
scanf("%d
", &n);
for (int i = 0; i < n; ++i)
scanf("%s%s", data[i].name, data[i].day);
int cnt = 0; //
int earlest = -1, latest = -1; //
for (int i = 0; i < n; ++i)
if(strcmp(data[i].day, "1814/09/06") >= 0 && strcmp(data[i].day, "2014/09/06") <= 0) {
if(earlest < 0) // ,
earlest = latest = i;
++cnt;
if(strcmp(data[i].day, data[earlest].day) <= 0)
earlest = i;
else if(strcmp(data[i].day, data[latest].day) >= 0)
latest = i;
}
if(cnt)
printf("%d %s %s", cnt, data[earlest].name, data[latest].name);
else // 0,
printf("%d", cnt);
return 0;
}
요약:1. , , ;
2. (earlest) (latest) , ,earlest latest 0。 , bug ! earlest latest 。 , , 。
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Cognos 목록을 프롬프트에서 선택한 항목으로 오름차순 및 내림차순으로 정렬Cognos BI & Analytics에서 리스트의 정렬을 항목 지정 및 정렬 순서 지정으로 하고 싶을 때의 방법입니다. 정렬 항목 프롬프트에서 수량을 선택하고 정렬 순서 프롬프트에서 내림차순을 선택한 예입니다. 정...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.