Description

CSU又到了一年中评奖学金的时候了……各大学霸都或多或少地拿到了各种奖学金(你们自己看着办吧)。

在这里,评奖学金有个很奇怪的规矩——每个同学得到的奖学金数一定满足相邻的两个非零数位上的数字不相等(奖学金都是非负整数,如果一个同学没有得到奖学金,我们也可以认为学校发给ta的奖学金为0)。

然而,如果你问这里的孩子拿了多少奖学金,ta不会直接告诉你拿到了多少奖学金,而会告诉你ta拿到的奖学金数大于某一个整数X。同时为了不产生歧义,ta所说的那个数和ta所拿到的那个奖学金数目之间不会存在任何一个数满足学校发奖的规矩。

现在你已经知道了每个同学说的那个整数X,你能确切地说出每个同学得到了多少奖学金吗?

Input

一组测试数据。

第一个数N,表示接下来有N个同学告诉了你ta的获奖信息(N<10000)

接下来每行一个整数X,表示一名同学所说的那个整数X。(X不超过int范围)

Output

总共N行,每行一个数,表示该同学拿到了多少奖学金。

题目保证每个同学实际拿到的奖学金数目不会超过10 ^8。(Orz,学霸啊)

Sample Input

5 1 10 20 98 15995112

Sample Output

2 12 21 100 16000000

HINT

对于64位整形,请用%lld,或者cin,cout。T_T

CSU_LQ

今天的水题特别多,我们A了6题,不错,纪念下;

这也是个水题,纯模拟;

这个题稍微有点繁琐,为了锻炼自己的逻辑,还是硬着头皮敲了遍;

代码:

 #include<cstdio>
#include<cstring>
using namespace std;
char s[];
int l,t,ce;
bool flag,ff;
int check()
{
for(int i=; i<l; i++)if(s[i]!=''&&s[i]==s[i-])return i;
return ;
}
void add(int ce)
{
s[ce]++;
while(s[ce]>'')
{
if(ce==)
{
flag=;
s[ce]='';
break;
}
s[ce]='';
s[--ce]++;
}
}
int main()
{
scanf("%d",&t);
while(t--)
{
scanf("%s",&s);
if(s[]=='-'){puts("");continue;}
l=strlen(s);
flag=,ff=;
add(l-);
if(l>)while()
{
int ce=check();
if(ce==)break;
if(ff)
{
for(int i=ce+; i<l; i++)s[i]='';
ff=;
}
add(ce);
}
if(flag)printf("");
puts(s);
}
return ;
}

最新文章

  1. 1. 使用Filter 作为控制器
  2. POJ 1753. Flip Game 枚举or爆搜+位压缩,或者高斯消元法
  3. knockout学习笔记10:demo
  4. JavaScript学习08 Cookie对象
  5. BZOJ 1009 【HNOI2008】 GT考试
  6. 2013年Linux周刊读者投票出炉 Ubuntu、Android榜上有名
  7. Configuration.ConfigurationSettings.AppSettings已过时
  8. python流程控制语句 ifelse - 4
  9. 从零开始学ios开发(十七):Storyboards(上)
  10. hive,spark的远程调试设置
  11. ExtJs store加载
  12. QT5 TK1 串口通信
  13. 树莓派远程桌面配置-开机自启SSH
  14. js的call和apply拾遗
  15. 虚拟机下 centos7 无法连接网络
  16. efcore数据库自动生成
  17. 图的最短路径-----------SPFA算法详解(TjuOj2831_Wormholes)
  18. robot_pose的类型
  19. datanode启动失败
  20. Ubuntu16.04上安装neo4j数据库

热门文章

  1. 远程之SSH
  2. H5上传文件
  3. openwrt chinadns
  4. HTTP请求、响应报文格式
  5. java List交集 并集 差集 去重复并集
  6. using(){},Close(),Dispose()的区别
  7. python的交代一
  8. Path类
  9. Java分布式缓存框架
  10. 注释玩转webapi