#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define CLOSE_PROGRAM fclose(input); fclose(output); return 0;
int main(void) {
FILE
*input
= fopen("pal.in","r"), *output
= fopen("pal.out","w"); char *array;
long int i,j,mid,len;
if(len % 2) { //Βρίσκω το μέσο
mid = len / 2 + 1; //
}else { //
mid = len / 2; //
}
i = mid - 1;
j = mid + 1;
while(array[i] == array[j]) { //Βρίσκω το μέχρι πού είναι ίδια τα indexes
i--; //
j++; //
}
if(i == 0 && j == len) { //Είναι παλίνδρομο!
CLOSE_PROGRAM
}
array
= (char *) realloc(array
,len
+ (len
- 1)); for(mid = len - 1, i = mid - 1, j = mid + 1; i >= 0; i--, j++) {
array[j] = array[i];
}
CLOSE_PROGRAM
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKI2RlZmluZSBDTE9TRV9QUk9HUkFNIGZjbG9zZShpbnB1dCk7IGZjbG9zZShvdXRwdXQpOyByZXR1cm4gMDsKCmludCBtYWluKHZvaWQpCXsKCUZJTEUgKmlucHV0ID0gZm9wZW4oInBhbC5pbiIsInIiKSwgKm91dHB1dCA9IGZvcGVuKCJwYWwub3V0IiwidyIpOwoJY2hhciAqYXJyYXk7Cglsb25nIGludCBpLGosbWlkLGxlbjsKCWZzY2FuZihpbnB1dCwiJWxkIiwmbGVuKTsKCWFycmF5ID0gKGNoYXIgKikgbWFsbG9jKGxlbik7Cglmc2NhbmYoaW5wdXQsIiVzIixhcnJheSk7CglpZihsZW4gJSAyKQl7CQkJCQkvL86Sz4HOr8+DzrrPiSDPhM6/IM68zq3Pg86/CgkJbWlkICA9IGxlbiAvIDIgKyAxOwkJCS8vCgl9ZWxzZQl7CQkJCQkJLy8KCQltaWQgPSBsZW4gLyAyOwkJCQkvLwoJfQoJaSA9IG1pZCAtIDE7CglqID0gbWlkICsgMTsKCXdoaWxlKGFycmF5W2ldID09IGFycmF5W2pdKQl7CS8vzpLPgc6vz4POus+JIM+Ezr8gzrzOrc+Hz4HOuSDPgM6/z40gzrXOr869zrHOuSDOr860zrnOsSDPhM6xIGluZGV4ZXMKCQlpLS07CQkJCQkJLy8KCQlqKys7CQkJCQkJLy8KCX0KCWlmKGkgPT0gMCAmJiBqID09IGxlbikJeyAJCS8vzpXOr869zrHOuSDPgM6xzrvOr869zrTPgc6/zrzOvyEKCQlmcHJpbnRmKGlucHV0LCIlbGQiLGxlbik7CgkJQ0xPU0VfUFJPR1JBTQoJfQoJYXJyYXkgPSAoY2hhciAqKSByZWFsbG9jKGFycmF5LGxlbiArIChsZW4gLSAxKSk7Cglmb3IobWlkID0gbGVuIC0gMSwgaSA9IG1pZCAtIDEsIGogPSBtaWQgKyAxOyBpID49IDA7IGktLSwgaisrKQl7CgkJYXJyYXlbal0gPSBhcnJheVtpXTsKCX0KCWZwcmludGYob3V0cHV0LCIlcyIsYXJyYXkpOwoJQ0xPU0VfUFJPR1JBTQp9Cg==