Điều hướng chính

Nhắn tin NQ Coding

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập traidauvetcancoban006

Trái dấu

Dễ Duyệt

  • 100p Điểm
  • 1.0s Thời gian
  • 256M Bộ nhớ
  • 0% Tỉ lệ AC
  • 0 Số AC

Cho một dãy gồm \(n\) số nguyên \(a_1, a_2, \ldots, a_n\).

Với mỗi vị trí \(i\) (\(1 \le i \le n\)), hãy tìm độ dài lớn nhất của một đoạn con liên tiếp bắt đầu tại \(i\) sao cho các phần tử liên tiếp trong đoạn đó trái dấu nhau.

Hai số được gọi là trái dấu nếu một số âm và số kia dương. Một đoạn con \((i..j)\) của \(a\) là một dãy các phần tử liên tiếp nhau \(a_i,a_{i+1},\cdots,a_j\) (\(i \le j \le n\)).

Input

  • Dòng đầu tiên chứa số nguyên \(n\) (\(1 \le n \le 10^5\)).
  • Dòng thứ hai chứa \(n\) số nguyên \(a_1, a_2, \ldots, a_n\) (\(-10^5 \le a_i \le 10^5\) và \(a_i \ne 0\)).

Output

In ra \(n\) số nguyên, số thứ \(i\) là độ dài lớn nhất của đoạn trái dấu liên tiếp bắt đầu từ vị trí \(i\).

Scoring

  • Có 50% số điểm ứng với \(n \le 10^3\).
  • 50% số điểm còn lại ứng với \(n \le 10^5\).

Sample Input 1

5
1 -2 3 -4 5

Sample Output 1

5 4 3 2 1 

Sample Input 2

6
1 -2 -3 3 -4 5

Sample Output 2

2 1 4 3 2 1 

Bình luận

Chưa có bình luận nào.