fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define CLOSE_PROGRAM fclose(input); fclose(output); return 0;
  6.  
  7. int main(void) {
  8. FILE *input = fopen("pal.in","r"), *output = fopen("pal.out","w");
  9. char *array;
  10. long int i,j,mid,len;
  11. fscanf(input,"%ld",&len);
  12. array = (char *) malloc(len);
  13. fscanf(input,"%s",array);
  14. if(len % 2) { //Βρίσκω το μέσο
  15. mid = len / 2 + 1; //
  16. }else { //
  17. mid = len / 2; //
  18. }
  19. i = mid - 1;
  20. j = mid + 1;
  21. while(array[i] == array[j]) { //Βρίσκω το μέχρι πού είναι ίδια τα indexes
  22. i--; //
  23. j++; //
  24. }
  25. if(i == 0 && j == len) { //Είναι παλίνδρομο!
  26. fprintf(input,"%ld",len);
  27. CLOSE_PROGRAM
  28. }
  29. array = (char *) realloc(array,len + (len - 1));
  30. for(mid = len - 1, i = mid - 1, j = mid + 1; i >= 0; i--, j++) {
  31. array[j] = array[i];
  32. }
  33. fprintf(output,"%s",array);
  34. CLOSE_PROGRAM
  35. }
  36.  
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty