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
Remi: 2014-01-15 15:17:31

@sam It depends on your term. Printing in your term may take long. Try with a redirection of stdout to /dev/null to get the 'real' time. Like this : `1>/dev/null`

sam: 2014-01-15 15:17:31

Need help with solving this problem using python!
my solution is fine it seems, i see the bottle neck with IO : most of my time goes in outputting the HUGE 1M digit number to my console.. with a single 1M digit input i am clocking 17 secs.. any suggestions/ideas?

Last edit: 2012-03-17 09:30:38
nik: 2014-01-15 15:17:31

Yep, brute function was good idea, thanks.

Alexander Bagnall: 2014-01-15 15:17:31

I'm also getting "wrong answer" from the judge. Sure, my algorithm is not very fast but it gives the correct output when I run it on my computer. :(

Edit - Ah! I just had to input the values as strings so it would accept such large values. Getting TLE as expected now. :)

Last edit: 2012-01-14 03:22:00
Ilya: 2014-01-15 15:17:31

How large can the number of inputs (t) be?

Hermano: 2014-01-15 15:17:31

I didn't read the problem carrefully. I thought it'd be 1 000 000 the max k value. But not... k can have almos 10^1000000 digits.

I can't make a code to execute the mirror thing fast enough. My code must increment a giant string representation of a integer, and compare theses represetations. And I keep getting tle. :/

Irving AJ Rivas: 2014-01-15 15:17:31

Adhityaa: there are faster solutions. Yours works, but is pretty slow. Keep working on it.

Last edit: 2011-10-27 15:26:15
Sotirios Nikoloutsopoulos: 2014-01-15 15:17:31

I got AC on this problem , even if my code failed at some test cases at even numbers ( now my code is corrected :) ).

Let's consider the case
Input :
1
20899802

Wrong output :
21000012

Wright output :
20900902

Shouldn't such test cases be included?

hendrik: 2014-01-15 15:17:31

@manish: Write a brute force function and calc all results from 0..10000 or so. Then compare that against your algo you need for that task. I got AC at the first shot with that approach.

genesect: 2014-01-15 15:17:31

@Hadyan: status codes explained here: http://www.spoj.pl/forum/viewtopic.php?f=6&t=55

@Stefan: test cases contain no leading zeros, disregard that case


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