#include #include #include int main() { char* S, * front, * back; int len; S = (char*)malloc(sizeof(char) * 20); if (scanf("%s%n", S, &len) != 1) { return -1; } if (len%2 != 0) { printf("NO"); return 0; } front = (char*)malloc(sizeof(char) * (len / 2) + 1); back = (char*)malloc(sizeof(char) * (len / 2) + 1); if (S == NULL || front == NULL || back == NULL) { return -1; } front[len / 2] = '\0'; back[len / 2] = '\0'; for (int i = 0; i < len; i++) { if (i < (len / 2)) { *(front + i) = *(S + i); } else { *(back + i - (len / 2)) = *(S + i); } } if (strcmp(front, back) != 0) { printf("NO"); return 0; } printf("YES"); free(S); free(front); free(back); S = NULL; front = NULL; back = NULL; return 0; }