6.4. Đoạn con dài nhất có tổng bằng S
Cho mảng A gồm N số nguyên (có thể chứa số âm) và số nguyên S.
Hãy tìm độ dài lớn nhất của một đoạn con liên tiếp có tổng các phần tử bằng đúng S.
Nếu không tồn tại đoạn nào thỏa mãn, in ra 0.
Dữ liệu vào
Dòng đầu chứa hai số nguyên N và S.
Dòng thứ hai chứa N số nguyên của mảng.
Dữ liệu ra
In ra độ dài lớn nhất của đoạn con có tổng bằng S.
Giới hạn
1 ≤ N ≤ 2×105
|A[i]| ≤ 109
|S| ≤ 1015
Ví dụ
Input
8 6 2 -1 3 1 -2 2 3 -3
Output
6
Giải thích
Trong mảng được cho, ta tìm được một đoạn con liên tiếp bắt đầu từ vị trí thứ 2 (giá trị -1) đến vị trí thứ 7 (giá trị 3). Đoạn con đó là: -1, 3, 1, -2, 2, 3. Tổng của đoạn con này là: (-1) + 3 + 1 + (-2) + 2 + 3 = 6 (đúng bằng giá trị S). Độ dài của đoạn con này là 6 phần tử. Đây là đoạn con dài nhất thỏa mãn yêu cầu, nên kết quả in ra là 6.
Comments