您的位置:首页 > 其它

PAT(Basic Level)_1028_人口普查

2017-07-25 10:17 295 查看
#include<stdio.h>
#include<string.h>

struct Tip{
char name[10];
int year;
int month;
int day;
};

int cmp(const Tip &A,const Tip &B){
if(A.year!=B.year) return A.year-B.year;
if(A.month!=B.month) return A.month-B.month;
return A.day-B.day;
}

int main(){
int N;
scanf("%d",&N);

Tip max={"",2014,9,6};
Tip min={"",1814,9,6};
Tip tmp;

Tip oldest={"",2014,9,6};
Tip youngest={"",1814,9,6};

int cnt=0;
while(N--){
scanf("%s %d/%d/%d",tmp.name,&tmp.year,&tmp.month,&tmp.day);
if(cmp(tmp,max)>0) continue;
if(cmp(tmp,min)<0) continue;
cnt++;
if(cmp(tmp,youngest)>0){
strcpy(youngest.name,tmp.name);
youngest.year=tmp.year;
youngest.month=tmp.month;
youngest.day=tmp.day;
}
if(cmp(tmp,oldest)<0){
strcpy(oldest.name,tmp.name);
oldest.year=tmp.year;
oldest.month=tmp.month;
oldest.day=tmp.day;
}
}

if(cnt==0) putchar('0');//测试点3
else printf("%d %s %s",cnt,oldest.name,youngest.name);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  acm pat 1028