Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<iostream>#include<algorithm>#include<string.h>#include<stdio.h>using namespace std;#define maxn 1000001char T[maxn],P[maxn];int N,Plen,Tlen,next[maxn];void getnext(){Plen=strlen(P);int i=0,j=-1;next[i]=j;while(i<Plen){if(j==-1 || P[i]==P[j]){i++,j++,next[i]=j;}else j=next[j];}}int KMP(){Tlen=strlen(T);int i=0,j=0,ans=0;while(i<Tlen){if(P[j]==T[i]|| j==-1){i++,j++;}else j=next[j];