#include <stdio.h>
#include <stdlib.h>
int myStrlen(char s[]){
int i;
for(i=0;s[i]!='\0';i++);
return i;
}
int hantei(char tmp[]){
int n,medi;
n=myStrlen(tmp);
if(n%2==1){
medi=(n/2)+1;
}else{
medi=(n/2);
}
for(int i=0;i<medi;i++){
if(tmp[i]!=tmp[n-1-i]){
return 0;
}
}
return 1;
}
char *zurashi(char tmp[], int count){
int n;
n=myStrlen(tmp);
if(count==0){
return tmp;
}
else{
tmp[n+count]=tmp[n+count-1];
return zurashi(tmp,count-1);
}
}
char *setPalindrome(char s[]){
char *tmp;
int m,n,i,count=0;
n=myStrlen(s);
m=2*n;
tmp
=(char *)malloc(sizeof(char )*m
); for(i=0;i<n;i++){
tmp[i]=s[i];
}
while(hantei(tmp)==0){
zurashi(tmp,count);
tmp[n]=s[count];
count++;
}
return tmp;
}
//メイン関数はいじる必要はありません
int main(){
int i;
char nyuryoku[1024]; //入力
char *kaibun; //回文を受け取る
kaibun = setPalindrome(nyuryoku);
printf("%s\n -> %s\n",nyuryoku
,kaibun
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludCBteVN0cmxlbihjaGFyIHNbXSl7CiAgICBpbnQgaTsKICAgIGZvcihpPTA7c1tpXSE9J1wwJztpKyspOwogICAgcmV0dXJuIGk7Cn0KCmludCBoYW50ZWkoY2hhciB0bXBbXSl7CglpbnQgbixtZWRpOwoJbj1teVN0cmxlbih0bXApOwoJaWYobiUyPT0xKXsKCQltZWRpPShuLzIpKzE7Cgl9ZWxzZXsKCQltZWRpPShuLzIpOwoJfQoJCglmb3IoaW50IGk9MDtpPG1lZGk7aSsrKXsKCQlpZih0bXBbaV0hPXRtcFtuLTEtaV0pewoJCQlyZXR1cm4gMDsKCQl9Cgl9CglyZXR1cm4gMTsKfQpjaGFyICp6dXJhc2hpKGNoYXIgdG1wW10sIGludCBjb3VudCl7CglpbnQgbjsKCW49bXlTdHJsZW4odG1wKTsKCWlmKGNvdW50PT0wKXsKCQlyZXR1cm4gdG1wOwoJfQoJZWxzZXsKCQl0bXBbbitjb3VudF09dG1wW24rY291bnQtMV07CgkJcmV0dXJuIHp1cmFzaGkodG1wLGNvdW50LTEpOwoJfQp9CgpjaGFyICpzZXRQYWxpbmRyb21lKGNoYXIgc1tdKXsKCWNoYXIgKnRtcDsKCWludCBtLG4saSxjb3VudD0wOwoJbj1teVN0cmxlbihzKTsKCW09MipuOwoJdG1wPShjaGFyICopbWFsbG9jKHNpemVvZihjaGFyICkqbSk7Cglmb3IoaT0wO2k8bjtpKyspewoJCXRtcFtpXT1zW2ldOwoJfQoJd2hpbGUoaGFudGVpKHRtcCk9PTApewoJCXp1cmFzaGkodG1wLGNvdW50KTsKCQl0bXBbbl09c1tjb3VudF07CgkJY291bnQrKzsKCQkKCX0KCXJldHVybiB0bXA7Cn0KCgovL+ODoeOCpOODs+mWouaVsOOBr+OBhOOBmOOCi+W/heimgeOBr+OBguOCiuOBvuOBm+OCkwppbnQgbWFpbigpewogICAgaW50IGk7CiAgICBjaGFyIG55dXJ5b2t1WzEwMjRdOyAvL+WFpeWKmwogICAgY2hhciAqa2FpYnVuOyAgIC8v5Zue5paH44KS5Y+X44GR5Y+W44KLCiAgICBzY2FuZigiJXMiLG55dXJ5b2t1KTsKICAgIGthaWJ1biA9IHNldFBhbGluZHJvbWUobnl1cnlva3UpOwogICAgcHJpbnRmKCIlc1xuICAtPiAlc1xuIixueXVyeW9rdSxrYWlidW4pOwogICAgZnJlZShrYWlidW4pOwogICAgcmV0dXJuIDA7Cn0K