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. Git 经常使用命令

    Git经常使用命令备忘: Git配置 git config --global user.name "storm" git config --global user.email &q ...

  2. (转) centos安装oracle11.2 pdksh软件包的说明

    对于pdksh软件包,可从以下URL下载:ftp://fr2.rpmfind.net/linux/PLD/dists/ac/ready/i686/pdksh-5.2.14-33.i686.rpm由于该 ...

  3. msys 中打开系统程序

    按照msys 后发现sh自带的vim不好用,下载安装了个gvim,在etc/profile中作如下设置: alias gvim="D:/Program\ Files/Vim/vim73/gv ...

  4. JSF教程(11)——生命周期之Invoke Application Phase

    在这个阶段JSF实现将处理不论什么应用界别的事件,比如表单的提交或者链接点击后跳转到还有一个页面. 这时假设应用须要重定向不同 的web应用字眼或者产生一个资源其并不喊不论什么的JSF组件,那么就调用 ...

  5. Log4net.confager配置官方文档

    http://logging.apache.org/log4net/release/config-examples.html

  6. iOS_04_学习ios开发的准备

    学习ios开发的准备 * 英语水平:看懂26个英文字母. * 计算机专业:不要求计算机专业,但得有脑子. * 学习态度:积极思考.积极动手.能吃苦.有兴趣. * 编程语言:C语言.C++(可选).Ob ...

  7. PHP实现查询两个数组中不同元素的方法

    以下实例讲述了PHP实现查询两个数组中不同元素的方法.分享给大家供大家参考,具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ...

  8. APK瘦身记,怎样实现高达53%的压缩效果

    作者:非戈@阿里移动安全,很多其它技术干货.请訪问阿里聚安全博客 1.我是怎么思考这件事情的 APK是Android系统安装包的文件格式.关于这个话题事实上是一个老生常谈的题目.不论是公司内部.还是外 ...

  9. 用strace排查故障的5种简单方法(每日一译)

    原文链接:5 simple ways to troubleshoot using Strace 我很意外大部分人都不知道如何使用strace.strace一直是我的首选debug工具,因为它非常的有效 ...

  10. ZOJ Special AC String 水

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3702 题目大意: 对于给定的一个字符串,满足如下要求输出AC,否则WA(好吧我 ...