14146: Де я?-Where Am I?-USACO2019DecBronze


Відправити розв'язок

Бали: 100 (partial)
Time limit: 2.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
Brain****, C, C++, Java, Pascal, Python, v8js

Вздовж дороги є \(N\) ферм (\(1 \leq N \leq 100\)). На фермах немає номерів, тож ФД важко орієнтуватися. На кожній фермі є кольорова поштова скринька з боку дороги, тому ФД сподівається, що якщо він подивиться на кольори найближчих поштових ящиків, то він зможе однозначно визначити, де він знаходиться.

Кожен колір поштової скриньки позначається літерою в інтервалі A..Z, таким чином, послідовність \(N\) поштових скриньок вздовж дороги є рядком довжини \(N\), що містить символи в інтервалі A..Z.

Деякі поштові скриньки можуть мати однакові кольори. ФД хоче дізнатися мінімальне число \(K\) таке, що якщо він подивиться на будь-яку послідовність з \(K\) послідовних ящиків, він унікально визначить місце розташування цієї послідовність на дорозі.

Наприклад, припустимо, що послідовність ящиків уздовж дороги є 'ABCDABC'. ФД не може вибрати \(K=3\), оскільки якщо він побачить 'ABC', то є два розташування такого рядка вздовж дороги. Мінімальне значення \(K\), яке працює, \(K=4\), оскільки будь-які послідовні 4 символи унікально визначають його позицію вздовж дороги.

Формат вхідних даних

Перший рядок введення містить \(N\), другий рядок містить рядок із символів \(N\), кожен в інтервалі A.Z.

Формат вихідних даних

Виведіть рядок, що містить одне ціле число, що вказує на мінімальне значення \(K\), яке вирішує завдання ФД.

Приклад вхідних даних

7
ABCDABC

Приклад вихідних даних

4

Коментарі

Ще немає коментарів.