A. Mr. Kitayuta's Gift
time limit per test
memory limit per test
input
output
s consisting of lowercase English letters. You are asked to insert exactly one lowercase English letter into s to make it a palindrome. A palindrome is a string that reads the same forward and backward. For example, "noon", "testset" and "a" are all palindromes, while "test" and "kitayuta" are not.
s, possibly to the beginning or the end of s. You have to insert a letter even if the given string is already a palindrome.
s so that the resulting string will be a palindrome, print the string after the insertion. Otherwise, print "NA" (without quotes, case-sensitive). In case there is more than one palindrome that can be obtained, you are allowed to print any of them.
Input
s (1 ≤ |s| ≤ 10). Each character in s
Output
s into a palindrome by inserting one lowercase English letter, print the resulting string in a single line. Otherwise, print "NA" (without quotes, case-sensitive). In case there is more than one solution, any of them will be accepted.
Sample test(s)
input
revive
output
reviver
input
ee
output
eye
input
kitayuta
output
NA
Note
r' to the end of "revive" to obtain a palindrome "reviver".
eve" will also be accepted.
kitayuta" into a palindrome by just inserting one letter.
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
using namespace std;
char a[101];
char b[101];
int k;
int findx()
{
for(int v=0;v<k;v++)
{
if(b[v]!=b[k-1-v])
{
return 0;
}
}
return 1;
}
int main()
{
while(scanf("%s",a)!=EOF)
{
int l = strlen(a);
int flag = 0;
for(int i=0;i<=l;i++)
{
for(int j='a';j<='z';j++)
{
k = 0;
int pi = 0;
while(pi<i)
{
b[k++] = a[pi];
pi++;
}
b[k++] = j;
while(pi<l)
{
b[k++] = a[pi];
pi++;
}
//wwprintf("************* %s\n",b);
if(findx() == 1)
{
for(int p=0;p<k;p++)
{
printf("%c",b[p]);
}
printf("\n");
flag = 1;
break;
}
}
if(flag == 1)
{
break;
}
}
if(flag == 0)
{
printf("NA\n");
}
}
return 0;
}