time limit per test1 second

memory limit per test256 megabytes

inputstandard input

outputstandard output

International Abbreviation Olympiad takes place annually starting from 1989. Each year the competition receives an abbreviation of form IAO’y, where y stands for some number of consequent last digits of the current year. Organizers always pick an abbreviation with non-empty string y that has never been used before. Among all such valid abbreviations they choose the shortest one and announce it to be the abbreviation of this year’s competition.

For example, the first three Olympiads (years 1989, 1990 and 1991, respectively) received the abbreviations IAO’9, IAO’0 and IAO’1, while the competition in 2015 received an abbreviation IAO’15, as IAO’5 has been already used in 1995.

You are given a list of abbreviations. For each of them determine the year it stands for.

Input

The first line of the input contains a single integer n (1 ≤ n ≤ 1000) — the number of abbreviations to process.

Then n lines follow, each containing a single abbreviation. It’s guaranteed that each abbreviation contains at most nine digits.

Output

For each abbreviation given in the input, find the year of the corresponding Olympiad.

Examples

input

5

IAO’15

IAO’2015

IAO’1

IAO’9

IAO’0

output

2015

12015

1991

1989

1990

input

4

IAO’9

IAO’99

IAO’999

IAO’9999

output

1989

1999

2999

9999

【题解】



找规律;

左边对应数字范围;右边对应缩写的长度;

即缩写长度为x则在相应的左边范围内找;

这个范围很容易写出来的;

输出答案的时候每个范围也只要特判一下就能知道是具体哪个数字;

多个if用switch替代比较方便;

1989~1998 1

1999~2098 2

2099~3098 3

3099~13098 4

13099~113098 5

113099 1113098 6

1113099 11113098 7

11113099 111113098 8

111113099 1111113098 9

#include <cstdio>
#include <cmath>
#include <set>
#include <map>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <queue>
#include <vector>
#include <stack>
#include <string>
#define LL long long using namespace std; int n;
string s; void input_LL(LL &r)
{
r = 0;
char t = getchar();
while (!isdigit(t)) t = getchar();
LL sign = 1;
if (t == '-')sign = -1;
while (!isdigit(t)) t = getchar();
while (isdigit(t)) r = r * 10 + t - '0', t = getchar();
r = r*sign;
} void input_int(int &r)
{
r = 0;
char t = getchar();
while (!isdigit(t)) t = getchar();
int sign = 1;
if (t == '-')sign = -1;
while (!isdigit(t)) t = getchar();
while (isdigit(t)) r = r * 10 + t - '0', t = getchar();
r = r*sign;
} /*
1989~1998 1
1999~2098 2
2099~3098 3
3099~13098 4
13099~113098 5
113099 1113098 6
1113099 11113098 7
11113099 111113098 8
111113099 1111113098 9
*/ bool inrange(string s1,string s2,string s3)
{
return s1<=s2 && s2<=s3;
} int main()
{
//freopen("F:\\rush.txt", "r", stdin);
input_int(n);
for (int i = 1;i <= n;i++)
{
cin >> s;
s.erase(0,4);
int len = s.size();
switch (len)
{
case 1:
{
if (s=="9")
puts("1989");
else
cout << "199" << s<<endl;
break;
}
case 2:
{
if (s=="99")
puts("1999");
else
cout << "20" << s<<endl;
break;
}
case 3:
{
if (inrange("099",s,"999"))
cout << "2"<<s<<endl;
else
cout << "3" << s<<endl;
break;
}
case 4:
{
if (inrange("3099",s,"9999"))
cout << s << endl;
else
cout << "1"<<s<<endl;
break;
}
case 5:
{
if (inrange("13099",s,"99999"))
cout << s<<endl;
else
cout << "1"<<s<<endl;
break;
}
case 6:
{
if (inrange("113099",s,"999999"))
cout << s << endl;
else
cout <<"1"<<s<<endl;
break;
}
case 7:
{
if (inrange("1113099",s,"9999999"))
cout << s<< endl;
else
cout << "1"<<s<<endl;
break;
}
case 8:
{
if (inrange("11113099",s,"99999999"))
cout << s<<endl;
else
cout << "1"<<s<<endl;
break;
}
case 9:
{
if (inrange("111113099",s,"999999999"))
cout <<s<<endl;
else
cout << "1"<<s<<endl;
break;
}
}
}
return 0;
}

【23.33%】【codeforces 664C】International Olympiad的更多相关文章

  1. codeforces 664C C. International Olympiad(数学)

    题目链接: C. International Olympiad time limit per test 1 second memory limit per test 256 megabytes inp ...

  2. 【23.33%】【codeforces 557B】Pasha and Tea

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  3. 【23.33%】【hdu 5945】Fxx and game

    Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) Total Submission(s ...

  4. 【 BowWow and the Timetable CodeForces - 1204A 】【思维】

    题目链接 可以发现 十进制4 对应 二进制100 十进制16 对应 二进制10000 十进制64 对应 二进制1000000 可以发现每多两个零,4的次幂就增加1. 用string读入题目给定的二进制 ...

  5. 【23. 合并K个排序链表】【困难】【优先队列/堆排序】

    合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [ 1->4->5, 1->3->4, 2->6] 输出: 1->1-> ...

  6. 【20.23%】【codeforces 740A】Alyona and copybooks

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  7. 【23.39%】【codeforces 558C】Amr and Chemistry

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  8. 【33.10%】【codeforces 604C】Alternative Thinking

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  9. 【25.33%】【codeforces 552D】Vanya and Triangles

    time limit per test4 seconds memory limit per test512 megabytes inputstandard input outputstandard o ...

随机推荐

  1. python课程:python3的数字与字符串

    一下是基于python2的教程的 python中有 多个数据类型,和,两种字符串类型 他们都是不可变的.

  2. Maven学习总结(17)——深入理解maven灵活的构建

    一个优秀的构建系统必须足够灵活,应该能够让项目在不同的环境下都能成功构建.maven为了支持构建的灵活性,内置了三大特性,即:属性.profile和资源过滤. 1.maven属性 maven属性分6类 ...

  3. 【LCS】POJ1458Common Subsequence

    题目链接:http://poj.org/problem?id=1458 这是一道最长公共子序列的模板题: #include<iostream> #include<string> ...

  4. OC学习篇之---Foundation框架中的NSString对象和NSMutableString对象

    今天在在来继续看一下Foundation框架中的常用对象:NSString和NSMutableString 在OC中NSString对象是不可变的,和Java中的String一样的,而NSMutabl ...

  5. SpringBoot学习:获取yml和properties配置文件的内容(转)

    项目下载地址:http://download.csdn.net/detail/aqsunkai/9805821 (一)yml配置文件: pom.xml加入依赖: <!-- 支持 @Configu ...

  6. php课程 8-29 gd库能够画哪些东西

    php课程 8-29 gd库能够画哪些东西 一.总结 一句话总结:文字,点,线,圆,弧线,矩形,各种形状都是可以的,和html5中的canva能画的东西很像,使用也很像,参数怎么记呢,参数完全不用记, ...

  7. 4、linux下应用创建线程

    1.linux创建线程之pthread_create 函数简介 pthread_create是UNIX环境创建线程函数 头文件 #include<pthread.h> 函数声明 int p ...

  8. LeetCode解题报告--2Sum, 3Sum, 4Sum, K Sum求和问题总结

    前言: 这几天在做LeetCode 里面有2sum, 3sum(closest), 4sum等问题, 这类问题是典型的递归思路解题.该这类问题的关键在于,在进行求和求解前,要先排序Arrays.sor ...

  9. RSA DH

    https://www.cnblogs.com/hiflora/archive/2013/07/04/3171775.html http://www.ruanyifeng.com/blog/2013/ ...

  10. 【50.00%】【codeforces 602C】The Two Routes

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...