Codeforces Round #347 (Div. 2) C

964 ワード

【題意】略~
【分析】欲張りで、大まかな範囲を決めて、その範囲を超えた最初の数が答えです!!!
【ACコード】
#include <queue>
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 100;
char s[maxn];
int main()
{
    //scanf("%s",s);
    int T;
    scanf("%d",&T);
    while(T--)
    {
        int i;
        int basic=1989,digit=10;
        scanf("%s",s);
        int len = strlen(s);
        int sum=0;
        for(i=0; isdigit(s[i+4])&&i<len; i++){
            sum = sum*10 + s[i+4]-'0';
        }
        for(int j=2; j<=i; j++){
            basic+=digit;
            digit*=10;
        }
        cout<<sum<<" "<<basic<<" "<<digit<<endl;
        for(i=0; i*digit+sum<basic; i++);
        cout<<i*digit+sum<<endl;
    }
    return 0;
}