#include<iostream>
#include<cmath>
#include <cstdio>
#include<algorithm>
#include <cstring>
using namespace std;
char str[82];
int main(){
scanf("%s",str);
int n=strlen(str);
int ans=0,k=3;
int n2;
while(k<n){
if(3*k-2>=n && ans<(n+2-k)/2 && (n+2-k)%2==0){
ans=(n+2-k)/2;
n2=k;
}
k++;
}
for(int i=0;i<ans-1;i++){
cout<<str[i];
for(int i=0;i<n2-2;i++)
cout<<" ";
cout<<str[n-i-1]<<endl;
}
for(int i=0;i<n2;i++)
cout<<str[i+ans-1];
return 0;
}
优化:
#include<iostream>
#include<cmath>
#include <cstdio>
#include<algorithm>
#include <cstring>
using namespace std;
char str[82];
int main(){
gets(str);
int N=strlen(str);
int n1=(N+2)/3,n3=n1,n2=N+2-n1-n3;
for(int i=0;i<n1-1;i++){
printf("%c",str[i]);
for(int j=0;j<n2-2;j++)
printf(" ");
printf("%c",str[N-i-1]);
}
for(int i=0;i<n2;i++){
printf("%c",str[n1+i-1]);
}
return 0;
}