IOIPALIN  Palindrome 2000
A palindrome is a symmetrical string, that is, a string read identically from left to right as well as from right to left. You are to write a program which, given a string, determines the minimal number of characters to be inserted into the string in order to obtain a palindrome. As an example, by inserting 2 characters, the string "Ab3bd" can be transformed into a palindrome ("dAb3bAd" or "Adb3bdA"). However, inserting fewer than 2 characters does not produce a palindrome.
Input
The first line contains one integer: the length of the input string N, 3≤N≤5000. The second line contains one string with length N. The string is formed from uppercase letters from ‘A’ to ‘Z’, lowercase letters from ‘a’ to ‘z’ and digits from ‘0’ to ‘9’. Uppercase and lowercase letters are to be considered distinct.
Output
The first line contains one integer, which is the desired minimal number.
Example
Input: 5 Ab3bd Output: 2
hide comments
mkfeuhrer:
20160722 07:35:59
space optimization> O(3*n)>AC & top down lcs !! 

SUBHAM SANGHAI:
20160713 16:15:52
use scanf,printf instead of cin,cout and ios base Last edit: 20160713 16:16:08 

dwij28:
20160425 10:31:39
Finally did it in O(2 * n) space. Key is that we while building dp matrix in lcs problem, we only need the current and previous rows .. :) 

maxeinstle:
20160210 17:16:11
Do space optimization in c++ if getting TLE 

Rishi Vikram:
20160131 22:45:58
O(3*n) memory acceptable. 

minhthai:
20160118 05:02:52
even O(n) space in java cannot pass :( 

sneh sajal:
20151218 23:36:49
try to optimize space in linear :) 

janina:
20151218 18:42:37
O(n^2) space O(n^2) time and scanf,printf will give you AC. 

rakhejabhai:
20151209 19:46:28
linear space is the key to AC 

LEMONICE:
20151023 07:00:25
I am not able to submit! It says Error,Wrong problem code! 
Added by:  Gareev 
Date:  20100816 
Time limit:  1s 
Source limit:  50000B 
Memory limit:  1536MB 
Cluster:  Cube (Intel G860) 
Languages:  All except: NODEJS OBJC PERL6 VB.NET 
Resource:  IOI 2000, Day 1 