Nghịch thế cực đại

Xem dạng PDF

Gửi bài giải

Điểm: 100,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Pascal, Python, Rust

Cho một dãy số nguyên gồm ~n~ phần tử ~a_1, a_2, \dots, a_n~. Khoảng cách giữa hai phần tử ~a_i~ và ~a_j~ (với ~i < j~) được tính bằng công thức ~j - i~.

Một cặp phần tử ~(a_i, a_j)~ được gọi là một cặp nghịch thế nếu chúng đứng sai thứ tự so với mảng tăng dần, tức là ~i < j~ nhưng ~a_i > a_j~.

Yêu cầu: Hãy tìm khoảng cách lớn nhất có thể đạt được của một cặp nghịch thế trong dãy số đã cho.

Dữ liệu vào

  • Dòng đầu tiên là số nguyên ~n~ ~(2 \le n \le 10^5)~.
  • Dòng tiếp theo bao gồm ~n~ số nguyên ~a_i~ ~(1 \le a_i \le 10^9)~.
  • Dữ liệu luôn đảm bảo dãy số tồn tại ít nhất một cặp nghịch thế.

Kết quả

  • In ra một số nguyên duy nhất là khoảng cách lớn nhất tìm được.

Ví dụ

Input

6
5 4 3 6 1 2

Output

5

Giải thích: Cặp nghịch thế có khoảng cách xa nhất là ~a_1~ và ~a_6~ (~5 > 2~). Khoảng cách là ~6 - 1 = 5~.

Giới hạn

  • ~2 \le n \le 10^5~.
  • ~1 \le a_i \le 10^9~.
  • Luôn tồn tại ít nhất một cặp nghịch thế.

Subtask:

  • 40% số test tương ứng với 40% số điểm có ~1 \le n \le 10^3~.
  • 40% số test tương ứng với 40% số điểm tiếp theo có ~1 \le a_i \le 2~.
  • 20% số test tương ứng với 20% số điểm còn lại không có giới hạn gì thêm.

Đang tải...