2009 - Đoạn con dài nhất có số chẵn bằng số lẻ

Tạo bởi: GV. Bùi Phú Khuyên

Mô tả yêu cầu

Cho một mảng A gồm n số nguyên (có thể âm, dương hoặc bằng 0). Hãy tìm độ dài lớn nhất của một đoạn con liên tiếp (subarray) sao cho trong đoạn đó số phần tử chẵn bằng số phần tử lẻ.

In ra độ dài lớn nhất (một số nguyên). Nếu không tồn tại đoạn con thỏa mãn, in 0.

Gợi ý: ánh xạ chẵn → +1, lẻ → -1 (hoặc ngược lại), dùng prefix sum và hashmap để tìm nhanh khoảng cách hai chỉ số có cùng prefix.

Dữ liệu vào

Dòng 1: số nguyên n — số phần tử (1 ≤ n ≤ 200000)

Dòng 2: n số nguyên A_{[i]} - cách nhau bởi khoảng trắng.

Dữ liệu ra

Một dòng duy nhất: một số nguyên — độ dài lớn nhất của đoạn con liên tiếp có số chẵn = số lẻ.

Ví dụ

Dữ liệu vào Sao chép
5
1 2 1 2 1
Dữ liệu ra Sao chép
4
Dữ liệu vào Sao chép
4
2 4 6 8
Dữ liệu ra Sao chép
0
Dữ liệu vào Sao chép
6
1 1 2 2 2 1
Dữ liệu ra Sao chép
4

Gợi ý/Hướng dẫn

Giải thích:

  • Ví dụ 1: Đoạn con dài nhất có số chẵn = số lẻ là [1,2,1,2] (2 chẵn, 2 lẻ) — độ dài 4.
  • Ví dụ 2: Không có phần tử lẻ, nên không tồn tại đoạn có số chẵn = số lẻ.
  • Ví dụ 3: Đoạn [1,1,2,2] hoặc [1,2,2,1] (tuỳ vị trí) có 2 chẵn và 2 lẻ.
Đăng nhập để làm bài
Thông tin
Giới hạn thời gian 1 giây
Giới hạn bộ nhớ 128 MB