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
prasanth292130: 2017-08-20 20:16:01

do we need to test for the negitive numbers???

aryandosaj: 2017-08-19 16:07:33

i m giving output in prescribed format and also getting the correct answer but unable to submit.is there any extreme case to be checked.

Sebastian Ceronik: 2017-08-16 09:50:18

Anyone else expiriencing problem with WA ? I mean I pass tests according to spojtoolkit. but get wrong answer :/
toolkit say that 001 supposed to be 010... what is up with this leading zeros that supposed to be ommited then ?
tried both cases while submiting solution but no success in that . am I missing something ? some more test cases could be usefull maby ..

kotal_kahn: 2017-07-15 18:35:51

hey i am using string to store large numbers then incrementing by 1
and checking if the reverse of the string matches
is it correct way?

m_sundriyal: 2017-07-14 00:00:37

if(problem==TLE) http://www.geeksforgeeks.org/?p=23497
if(problem==WA) Read this carefully "For a given positive integer K of not more than 1000000 digits"
means that the number can be of 1000000 digits which cannot be stored in any data type.
Some Important Test Cases
Input
0
1
001
9
999

Output
1
2
2
11
1001
Thank me later

md_hasnain: 2017-07-11 11:52:42

My code is running without any tle in ideone with time limit as 5s but giving tle in spoj...

Last edit: 2017-07-18 10:08:15
Kraken: 2017-07-10 03:47:05

Test case of @manmeet_rana works for me

jayu_jd: 2017-07-06 06:54:06

nice problem!!

manmeet_rana: 2017-07-04 08:02:34

guys consider test cases like 999
output: 1001

azazello_: 2017-06-20 10:49:23

Tips for beginners like me:
(1) Write down successive palindromes with 2 digits then 3 etc. in order to understand patterns.
(2) The numbers can have up to a million digits !
(3) Don't forget to deal with test cases starting with leading zeros (0000345 ->353). I have a feeling there are such test cases since he mentions leading zeros in the description.
(4) You might want to rembember the ASCII table...

It took me maybe 4 hours to find a good idea for the algorithm (I thought it through myself) , and then another couple of hours to implement...
Good luck!


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 PERL6

Problem's scores 1 vote

Concept difficulty
Concept difficulty 37%
Implementation difficulty
Implementation difficulty 50%
467 16