1028 人口普查 (20 分

注意没有一个有效生日时,要输出0

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    //freopen("1028.txt","r",stdin);
    cin>>n;
    string name,birth,Max_name,Min_name;
    int Max=0,Min=99999999,cnt=0;
    //cout<<n;
    for(int i=0;i<n;i++)
    {
        int flag=0;
        cin>>name>>birth;
        int year=(birth[0]-'0')*1000+(birth[1]-'0')*100+(birth[2]-'0')*10+(birth[3]-'0');
        int month=(birth[5]-'0')*10+birth[6]-'0';
        int day=(birth[8]-'0')*10+(birth[9]-'0');
        //cout<<year<<" "<<month<<" "<<day<<endl;
        if(year>2014||year<2014-200)
            flag=1;
        if(year==2014)
        {
            if(month>9)
                flag=1;
            else if(month==9)
            {
                if(day>6)
                    flag=1;
            }
        }
        if(year==1814)
        {
            if(month<9)
                flag=1;
            else if(month==9)
            {
                if(day<6)
                    flag=1;
            }
        }
        //cout<<"here"<<endl;
        if(flag==0)
        {
            
            cnt++;
            int sum=year*365+month*30+day;
            if(sum>Max)
            {
                Max=sum;Min_name=name;
            }
            if(sum<Min)
            {
                Min=sum;Max_name=name;        
            }
        }
    
    }
    if(cnt!=0)
        cout<<cnt<<" "<<Max_name<<" "<<Min_name;
    else
        cout<<"0";
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_35452997/article/details/85933072