Đoạn con dài nhất tổng 0
Xem dưới dạng PDF
Gửi bài giải
Điểm:
1
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
đầu vào:
stdin
Đầu ra:
stdout
Kiểu bài tập
Cho mảng A gồm N số nguyên. Tìm độ dài đoạn con liên tiếp dài nhất có tổng bằng 0.
Sử dụng prefix sum kết hợp hash map: lưu vị trí xuất hiện đầu tiên của mỗi giá trị prefix. Khi gặp lại giá trị prefix đã thấy, đoạn giữa hai vị trí đó có tổng bằng 0. Cập nhật độ dài lớn nhất.
Đầu vào
- Dòng đầu tiên chứa số nguyên N (1 ≤ N ≤ 10^5).
- Dòng thứ hai chứa N số nguyên A_i (-10^9 ≤ A_i ≤ 10^9).
Đầu ra
Một số nguyên duy nhất là độ dài đoạn con dài nhất có tổng bằng 0. Nếu không có đoạn nào, in ra 0.
Ví dụ
Input:
8
1 2 -2 3 -3 4 -4 5
Output:
6
Giải thích
Đoạn [2, -2, 3, -3, 4, -4] (vị trí 2..7) có tổng bằng 0, độ dài 6.
Nhận xét