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
");
            else printf("199%d
",x);
        }
        if(len==2)
        {
            if(x==99) printf("1999
");
            else printf("20%02d
",x);
        }
        if(len==3)
        {
            if(x<=98) printf("3%03d
",x);
            else printf("2%03d
",x);
        }
        if(len==4)
        {
            if(x<=3098) printf("1%04d
",x);
            else printf("%04d
",x);
        }
        if(len==5)
        {
            if(x<=13098) printf("1%05d
",x);
            else printf("%05d
",x);
        }
        if(len==6)
        {
            if(x<=113098) printf("1%06d
",x);
            else printf("%06d
",x);
        }
        if(len==7)
        {
            if(x<=1113098) printf("1%07d
",x);
            else printf("%07d
",x);
        }
        if(len==8)
        {
            if(x<=11113098) printf("1%08d
",x);
            else printf("%08d
",x);
        }
        if(len==9)
        {
            if(x<=111113098) printf("1%09d
",x);
            else printf("%09d
",x);
        }
    }
    return 0;
}
原文地址:https://www.cnblogs.com/zufezzt/p/5482421.html