PALIN - The Next Palindrome


A positive integer is called a palindrome if its representation in the decimal system is the same when read from left to right and from right to left. For a given positive integer K of not more than 1000000 digits, write the value of the smallest palindrome larger than K to output. Numbers are always displayed without leading zeros.

Input

The first line contains integer t, the number of test cases. Integers K are given in the next t lines.

Output

For each K, output the smallest palindrome larger than K.

Example

Input:
2
808
2133

Output:
818
2222

Warning: large Input/Output data, be careful with certain languages


hide comments
ragwave: 2016-05-24 16:18:50

Finally accepted after 2 WA! check for tricky cases:
input:
7
24
9
0000000
999999
2456
2998
29999
output:
33
11
0001000
1000001
2552
3003
30003

PS:You won't get any points for solving this :P

Last edit: 2016-05-24 16:19:10
Kirill Diduk: 2016-05-24 14:57:36

In this problem, it is expected that a single-digit number is NOT a palindrome. So, when you get a single-digit number as an input, the output should be 11.

xinnix: 2016-05-21 14:47:44

Wth! Working everytime in my compiler but says wrong output here.... What's going on?
Edit: Ok.... I read 1000000 not 1000000 'digits'.... Oopsss

Last edit: 2016-05-21 14:50:04
avisheksanvas: 2016-05-18 08:51:54

Be careful while comparing.
Put ' ' between numbers. Cost me 7 WA's :p

Gaurav Kumar: 2016-05-12 14:37:59

hey , Is 1000 a palindrome ?
0001000 maybe

earlgreyhot: 2016-05-11 22:25:19

If you use recursion you will get NZEC (in python at least)

boney_412: 2016-05-10 20:22:01

Can anyone tell me how to rectify NZEC runtime
error?

palash_123: 2016-05-09 14:00:37

I'm unable to get the output to thi question.
can anyone help me out with this. I'll send my code.

roisym: 2016-05-04 14:40:58

This is a great problem! I'm a beginner (this is my 10th day learning programing from nothing). It took me many tries but finally got accepted(c#). Tips for beginners like myself (POSSIBLE SPOILER ALERT):
1. No language can hold a 1000K digit number as a integer - you cannot work with ints and need to come up with some other mean to work with these numbers
2. For this reason, brute force (which i myself submitted like 5 times - stupid!) will never work
3. Remember the palindrome you come up with needs to be LARGER than the input number
4. Once you have it, check for all the tricky numbers: one digit numbers, 99, 12322, 898 and other that ppl have pasted in here
5. Be sure to optimize your program as much as possible
6. Keep trying :-)

subham92: 2016-04-27 14:06:43

time limit exceeded :( But it takes only 0.2 secs in ideone


Added by:adrian
Date:2004-05-01
Time limit:2s-9s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: NODEJS PERL 6

Problem's scores 1 vote

Concept difficulty
Concept difficulty 41%
Implementation difficulty
Implementation difficulty 48%
125 4