아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Похожие имена

시간 제한2초메모리 제한1024 MB

요약
각 문자열을 원하는 만큼 순환 시프트해서 모든 문자열이 공유하는 공통 접두사의 최대 길이를 구합니다.
난이도

보통10점 중 7점

유형
문자열, 문자열 매칭, 이분 탐색, 해시맵
정답자
아직 제출이 없습니다

문제

Как-то раз nn друзей собрались сыграть в <<Among us>>, но при этом они хотели, чтобы каждый человек, заходящий в лобби, понимал, что они играют вместе. Для этого они решили выбрать никнеймы с похожим началом, но поскольку каждому дорог его текущий никнейм, никто не хочет его сильно изменять.

В качестве компромисса было принято следующее решение: каждый игрок сдвинет свой никнейм по циклу на какое-то количество символов так, чтобы общий префикс никнеймов всех игроков был как можно длиннее. Циклическим сдвигом строки s=s_0s_1…s_ns = s\_0 s\_1 \ldots s\_n называется строка вида si=s_is_i+1…s_ns_0s_1…s_i−1s^i = s\_i s\_{i+1} \ldots s\_n s\_0 s\_1 \ldots s\_{i - 1}, а префиксом --- строка вида pi=s_0s_1…s_ip^i = s\_0 s\_1 \ldots s\_i.

Так вот, возвращаясь к никнеймам: решить эту задачу предстоит вам, потому что игроки --- не программисты, и для них это слишком сложно. Помогите им найти максимальный общий префикс, который можно получить, сдвинув их никнеймы по циклу.

입력

В первой строке задано число nn --- количество игроков (1⩽n⩽1051 \leqslant n \leqslant 10^5).

В следующих nn строках заданы никнеймы игроков: на ii-й строке дан никнейм ii-го игрока s_is\_i --- последовательность строчных латинских букв (1⩽∣s_i∣⩽1051 \leqslant |s\_i| \leqslant 10^5). Гарантируется, что сумма длин всех никнеймов не превосходит 10510^5.

출력

Найдите длину наибольшего общего префикса, который могут получить игроки, применив к своим никнеймам какие-то циклические сдвиги.

예제2

  1. 예제 1

    입력
    4
    abacada
    abracadabra
    rxacadd
    dzzzaca
    
    예상 출력
    4
    
  2. 예제 2

    입력
    2
    abacaba
    acabaab
    
    예상 출력
    7