【pat】b1028 人口普查

这道题考察了对日期的处理知识,发现这次复习又把上次的东西忘了。/哭

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

#include<cstdio>
#include<algorithm>
#include<stdlib.h>
using namespace std;
struct Person{
char name[100];
int nian,yue,ri;
}arr[100000];
bool cmp(Person A,Person B){
if(A.nian!=B.nian)
return A.nian<B.nian;
else if(A.yue!=B.yue)
return A.yue<B.yue;
else return A.ri<B.ri;
}
int main(){
int N,num=0;
scanf("%d",&N);
for(int i=0;i<N;i++){
Person temp;
scanf("%s %d/%d/%d",&temp.name,&temp.nian,&temp.yue,&temp.ri);
if(temp.nian<1814||(temp.nian==1814&&temp.yue<9)||(temp.nian==1814&&temp.yue==9&&temp.ri<6))
continue;
if(temp.nian>2014||(temp.nian==2014&&temp.yue==9&&temp.ri>6)||(temp.nian==2014&&temp.yue>9))
continue;
arr[num++]=temp;
}
sort(arr,arr+num,cmp);
if(num!=0)
printf("%d %s %s",num,arr[0].name,arr[num-1].name);
else printf("0");
return 0;
}