Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<stdio.h>#include<string.h>#include<algorithm>#include<cmath>using namespace std;char s1[105],s2[105];int dp[102][102];int main(){scanf("%s",s1);int len=strlen(s1);int i,j,to,from,mid,dis,maxlen;for (i=0;i<len;i++)s2[len-i-1]=s1[i];s2[len]='\0';memset(dp,0,sizeof(dp));to=0;mid=len/2;dis=1000;maxlen=0;for (i=1;i<=len;i++)for (j=1;j<=len;j++)if (s1[i-1]==s2[j-1]){dp[i][j]=dp[i-1][j-1]+1;if (dp[i][j]>maxlen){maxlen=dp[i][j];to=i-1;dis=abs(mid-i+1);}else if (dp[i][j]==maxlen&&abs(mid-i+1)<dis){to=i-1;