Cho dãy a gồm n số. Với mỗi vị trí i, hãy đếm số đoạn liên tiếp (sub-array) mà phần tử cực đại bằng đúng ai, sao cho mỗi đoạn được tính cho đúng một i (tránh đếm trùng khi có giá trị lặp).
Gợi ý: với mỗi i, gọi L = chỉ số gần nhất bên trái có aL>ai (hoặc −1); R = chỉ số gần nhất bên phải có aR≥ai (hoặc n). Số đoạn được tính là (i−L)(R−i). Tổng các giá trị này luôn bằng (2n+1).
Ví dụ: a=[3,1,4,2] ⇒ i=0⇒2, i=1⇒1, i=2⇒6, i=3⇒1, tổng 10.
1≤n≤1000; −109≤ai≤109.
Ví dụ:
Đầu vào:
4
3 1 4 2
Đầu ra:
2 1 6 1
10
Giải thích:
Đang tải editor...