Run ID:136400

提交时间:2025-11-13 12:04:02

#include <bits/stdc++.h> using namespace std; char a[5000]; int f,i,j,s; int dg(int begin,int b,int c,int end) { int temp=1; while (begin<end) { if (a[b]==a[c]) { b--; c++; } else { temp=0; break; } begin++; end--; } if (temp!=0) s++; } int jo(int k) { int d,t; if (k%2==0) { if (f==0) { k=k/2-1; j=k; d=j+1; } else { t=(j+i)/2; d=j+1; } dg(f,t,d,i); } else { if (f==0) { k=k/2; j=k; d=j+1; t=j-1; } else { t=(i+j)/2-1; d=(i+j)/2+1; } dg(f,t,d,i); } if (f==0) return j; } int main() { int k; cin>>a; s=strlen(a); i=s-1; f=0; if (s>1) j=jo(s); k=0; while (k<2 and s>=3) { while (j<strlen(a)-1) { i=j+1; if (k==1 and strlen(a)>3) { i=j+2; k=2; } f=j; while (i<strlen(a)) { if (strlen(a)>2) jo(i-j+1); i++; } j++; } reverse(a,a+strlen(a)); j=1; k++; } cout<<s<<endl; return 0; }