Tìm dãy liên tiếp sao cho chênh lệch giữa số lớn nhất và nhỏ nhất không vượt quá T

Mn giúp mik bài này với, ý tưởng của mik là xét trong đoạn rồi tìm min, max rồi trừ nhưng chưa biết xử lí đoạn trùng nhau như thế nào

Trên một đoạn thẳng nằm ngang, Kiến chúa rải n miếng đường đánh số từ 1 đến n theo thứ tự từ trái qua phải, miếng đường thứ i có trọng lượng wi.
Mỗi chú kiến thợ vào thi sẽ phải tìm ra một đoạn liên tiếp các miếng đường sao cho chênh lệch khối lượng giữa miếng nặng nhất và nhẹ nhất không vượt quá T. Quan trọng nhất là đoạn tìm được này phải không trùng với những đoạn mà các chú kiến thợ thi trước đã tìm ra.
Em được cho trước số nguyên dương n, số nguyên dương T, ba số nguyên p, q, m để xác định dãy w1, w2, …, wn theo công thức:
wi = (p × i + q) mod m
Ví dụ với n = 5, p = 3, q = 0, m = 5, dãy các miếng đường sẽ là (3, 1, 4, 2, 0)
Yêu cầu: Xác định có tối đa bao nhiêu chú kiến thợ có thể đạt được chứng chỉ ‘kiến thông minh’
Input
• Dòng 1 ghi số nguyên dương n ≤ 5106
• Dòng 2 ghi 3 số nguyên không âm p, q, m ≤ 109 (m > 0)
• Dòng 3 ghi số nguyên không âm T ≤ 109
Output
Ghi một số nguyên duy nhất là số lượng tối đa các chú kiến thợ có thể đạt chứng chỉ
Example
input
Copy
5
3 0 5
2
output
Copy
8

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?