BALANCED PARENTHESES


Gửi bài giải

Điểm: 50
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G

Tác giả:
Kiểu bài tập
Ngôn ngữ cho phép
C++, Python

Cho một mảng gồm các số nguyên dương và số nguyên âm biểu thị các kiểu dấu ngoặc đơn khác nhau.

  • Các số dương xᵢ biểu thị cho ngoặc mở kiểu xᵢ;
  • Các số âm -xᵢ biểu thị cho ngoặc đóng kiểu xᵢ.

Một dấu ngoặc mở phải được đóng bằng đúng loại dấu ngoặc tương ứng. Các dấu ngoặc mở phải được đóng theo đúng thứ tự, tức là không được đóng một cặp ngoặc mở trước khi cặp ngoặc bên trong nó được đóng lại.

Như vậy:

  • [1, 2, -2, -1] là một dãy ngoặc đúng (cân bằng);
  • [1, 2, -1, -2] là một dãy ngoặc không đúng (không cân bằng).

Yêu cầu: Tìm đoạn con dài nhất trên mảng A thỏa mãn là một đoạn con cân bằng.

INPUT

  • Dòng đầu tiên chứa số nguyên dương N (1 ≤ N ≤ 2 × 10⁵);
  • Dòng thứ hai chứa N số nguyên a₁, a₂, …, aₙ (-10⁵ ≤ aᵢ ≤ 10⁵, aᵢ ≠ 0). aᵢ biểu thị dấu ngoặc đơn thứ i của mảng.

OUTPUT

Ghi ra một số nguyên duy nhất là độ dài dài nhất của đoạn con cân bằng tìm được.

Ví dụ

Sample Input
5
1 -1 2 3 -2
Sample Output
2
Giải thích
  • [1, -1] là đoạn con cân bằng;
  • [2, 3, -2] là đoạn con không cân bằng.

Do đó, độ dài lớn nhất của đoạn con cân bằng là 2.


Nhận xét

Không có ý kiến tại thời điểm này.