Nộp bài
Điểm:
800 (thành phần)
Thời gian:
1.0s
Python 3
5.0s
Bộ nhớ:
256M
Python 3
512M
Input:
bàn phím
Output:
màn hình
Tác giả:
Dạng bài
Trong buổi học đầu tiên ở lớp, s gồm n ký tự chỉ bao gồm các chữ cái tiếng anh viết thường. Cô đã dạy cho một số định nghĩa như sau:
được cho một xâu- Một xâu con của xâu s được tạo ra bằng cách bỏ bớt một số ký tự liên tiếp ở đầu và ở cuối của xâu s, với s[l\rightarrow r] là xâu con s_l s_{l+1}\dots s_r.
- Gọi p_i là hậu tố bắt đầu từ vị trí i của xâu s, định nghĩa p_i=s[i\rightarrow n].
- Gọi lcp(s_1,s_2,\dots,s_x) là giá trị k lớn nhất sao cho s_1[1\rightarrow k]=s_2[1\rightarrow k]=\dots=s_x[1\rightarrow k] và s_1,s_2,\dots,s_x là các xâu bất kỳ
Sau buổi học, cô giáo đã cho q truy vấn, mỗi truy vấn gồm 2 số l,r. Nhiệm vụ của là với mỗi truy vấn, hãy tính giá trị của lcp(p_l,p_{l+1},\dots,p_r).
đã giải xong rồi, và giờ đây chính là thử thách dành cho các bạn!
Input, Output và Subtasks
Input: (bàn phím
)
- Dòng đầu tiên gồm 2 số n,q (1\le n,q\le 2\times 10^5).
- Dòng tiếp theo gồm một xâu s độ dài n.
- Sau đó là q dòng, mỗi dòng gồm 2 số l,r (1\le l<r\le n).
Output: (màn hình
)
- Vỡi mỗi truy vấn, in ra giá trị của lcp(p_l,p_{l+1},\dots,p_r)
Subtasks
- 30\% số điểm có n\le 100.
- 30\% số điểm có n\le 2000.
- 40\% số điểm còn lại không có giới hạn gì thêm.
Sample
Input (bàn phím
)
4 3
abbb
1 2
2 3
2 4
Output (màn hình
)
0
2
1
Bình luận