MINIMUM STEPS

Bạn được cho số nguyên dương ~ n ~ và dãy số nguyên ~ a_1, a_2,…,a_n ~. Trong mỗi bước bạn cần lấy một phần tử ở vị trí bất kỳ và đặt nó vào trước hoặc sau một phần tử khác. Ví dụ cho dãy số ~ [1,3,2] ~ bạn có thể lấy số 3 đặt vào phía sau số 2, dãy số được chuyển thành ~ [1,2,3] ~.

Yêu cầu: Hãy thực hiện ít bước nhất sao cho dãy số trở thành dãy tăng hoặc giảm.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên dương ~ n ~ ~ ( 1 ≤ n ≤ 5 × 10^5 ) ~
  • ~ n ~ dòng sau lần lượt các số nguyên ~ a_1, a_2, …,a_n ~ ~ ( 1 ≤ a_i ≤ 10^9 ) ~

Kết quả

Một số nguyên duy nhất cho biết kết quả của bài toán.

Ví dụ:

Input 1

3
1 3 2 

Output 1

1 

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. linhdinh (28/34)
  2. gialinh_10van (23/25)
  3. phamnhi (17/68)
Trong 7 ngày
  1. phamnhi (126/299)
  2. ilpnvm (69/113)
  3. dambinh (61/97)
Trong 30 ngày
  1. ducchinh (184/249)
  2. hienpham (183/244)
  3. bichngoc (179/266)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 37789

Lưu Hải Phong - 2020
[email protected]