실패 함수를 잘 쓰면 된다. 백준에 문제 있음
코드: (템플릿 생략)
i32 main() {
fastio;
AhoCorasick ac;
inRep() ac.insert(inStr());
inRep() println(ac.find(inStr()) ? "YES" : "NO");
}
왼쪽 방향 / 오른쪽 방향으로 각각 해싱 후 모든 가능한 중심에 대해서 이분 탐색으로 최대 길이를 찾음
이중 해싱을 해야 AC를 받을 수 있음.
정해는 macacher
5~9 : 업솔빙 X