https://www.luogu.org/problemnew/show/P4391
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
const int M=1000005;
char a[M];
int n,p[M];
void work(){int j=0;
for (int i=1;i<n;i++){
while (j>0 && a[j+1]!=a[i+1]) j=p[j];
if (a[j+1]==a[i+1]) j++; p[i+1]=j;
}
}
int main(){
scanf("%d",&n);scanf("%s",a+1);
n=strlen(a+1);p[1]=0;work();
printf("%d\n",n-p[n]);
return 0;
}