Xâu con lặp

Xem PDF



Tác giả:
Dạng bài
Điểm: 300 (p) Thời gian: 2.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Cho xâu \(S\) độ dài \(N\), hãy lập trình xác định độ dài lớn nhất có thể của một xâu con xuất hiện từ hai lần trở lên trong \(S\) (hai lần xuất hiện này không được giao nhau). Nói cách khác, tìm số nguyên \(l\) lớn nhất sao cho tồn tại hai số chỉ số \(i_1\)\(i_2\) thỏa mãn:

  • \(1\leq i_1, i_2\leq N-l+1\).
  • \(i_1+l\leq i_2\).
  • \(S[i_1+j]=S[i_2+j]\) với mọi \(j=0,1,2,...,l-1\).

Nếu không tồn tại số nguyên dương \(l\) thỏa mãn thì in ra \(0\).


Input

  • Dòng đầu chứa số nguyên dương \(N\) \((N\leq 5000)\).
  • Dòng tiếp theo chứa xâu \(S\) độ dài \(N\) chỉ gồm các chữ cái latin in thường.

Output

In ra độ dài lớn nhất tìm được.


Example

Test 1

Input
5
ababa
Output
2    

Test 2

Input
2
xy
Output
0    

Test 3

Input
13
trangeorange
Output
5    

Bình luận