#include<cstdio>
#include<cstring>
using namespace std;
const int b=101,c=103,M=400010;
typedef unsigned long long ull;
ull sum1[M],sum2[M],power1[M],power2[M];
char s[M];
int main(){
int i,len;
power1[0]=power2[0]=1;
for(i=1;i<M;i++){
power1[i]=power1[i-1]*b;
power2[i]=power2[i-1]*c;
}
while(scanf("%s",s+1)!=EOF){
len=strlen(s+1);
sum1[0]=sum2[0]=0;
for(i=1;i<=len;i++){
sum1[i]=sum1[i-1]*b+(ull)(s[i]-'a');
sum2[i]=sum2[i-1]*c+(ull)(s[i]-'a');
}
for(i=1;i<=len;i++)
if(sum1[i]==sum1[len]-sum1[len-i]*power1[i])
if(sum2[i]==sum2[len]-sum2[len-i]*power2[i])
printf("%d ",i);
printf("\n");
}
return 0;
}
POJ 2752
最新推荐文章于 2019-08-13 12:18:36 发布