CodeForces 662D International Olympiad

 

写出前几个找规律,然后直接输出。

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;

int n;
char s[10000];

int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%s",s); int len=strlen(s);
        len=len-4;
        long long x=0; for(int i=4;s[i];i++) x=x*10+s[i]-'0';
        if(len==1)
        {
            if(x==9) printf("1989\n");
            else printf("199%d\n",x);
        }
        if(len==2)
        {
            if(x==99) printf("1999\n");
            else printf("20%02d\n",x);
        }
        if(len==3)
        {
            if(x<=98) printf("3%03d\n",x);
            else printf("2%03d\n",x);
        }
        if(len==4)
        {
            if(x<=3098) printf("1%04d\n",x);
            else printf("%04d\n",x);
        }
        if(len==5)
        {
            if(x<=13098) printf("1%05d\n",x);
            else printf("%05d\n",x);
        }
        if(len==6)
        {
            if(x<=113098) printf("1%06d\n",x);
            else printf("%06d\n",x);
        }
        if(len==7)
        {
            if(x<=1113098) printf("1%07d\n",x);
            else printf("%07d\n",x);
        }
        if(len==8)
        {
            if(x<=11113098) printf("1%08d\n",x);
            else printf("%08d\n",x);
        }
        if(len==9)
        {
            if(x<=111113098) printf("1%09d\n",x);
            else printf("%09d\n",x);
        }
    }
    return 0;
}

 

posted @ 2016-05-11 16:37  Fighting_Heart  阅读(217)  评论(0编辑  收藏  举报