帮帮孩子吧呜呜

,

为什么我马拉车一个点都过不去啊(啊啊

#include<bits/stdc++.h>
using namespace std;
const int N=11000002;
char a[N],S[N<<1];
int P[N<<1],R,C,cnt,ans=1;
void change(){
	S[cnt++]='&';
	int n=strlen(a);
	for(int i=0;i<n;i++) S[cnt++]='#',S[cnt++]=a[i];
	S[cnt++]='#';S[cnt++]='$';
}
int manacher(){
	R=0,C=0;
	for(int i=1;i<cnt;i++){
		if(i<R) P[i]=min(P[(C<<1)-i],P[C]+C-i);
		else P[i]=1;
		while(S[i+P[i]]==S[i-P[i]]) {
			P[i]++;
		
		}
		if(P[i]+i>R){
			R=P[i]+i;
			C=i;
		}
	}
}
int main(){
	scanf("%s",&a);
	change();
	manacher();
	for(int i=1;i<cnt;i++) {
		//cout<<"i:"<<i<<" "<<P[i]<<endl; 
		ans=max(ans,P[i]);
	}
	cout<<ans-1;
	return 0;
}

把tle的点下下来跑得飞快,我这是哪里错了啊

《tl re》

我是**

image

不是不能给自己解决方案吗

发现问题就给,是他自己发现的啊