TLEOJ [x QTOJ] Contest #13 - B - Sắp xếp

Xem PDF

Nộp bài

Điểm: 1900
Thời gian: 1.0s
Bộ nhớ: 512M
Input: bàn phím
Output: màn hình

Tác giả:
Dạng bài

Cho dãy số An phần tử, phần tử thứ i có giá trị là a_i.

Bạn có thể thực hiện hai thao tác sau:

  • Chọn 1 vị trí i (1\le i\le n) và chuyển a_i về đầu dãy và dồn các phần tử phía sau lên trước. (i.e. xoay vòng dãy từ a_1 đến a_i theo chiều hướng về phía cuối dãy, sau thao tác dãy sẽ trở thành a_i, a_1, a_2, ..., a_{i - 1}, a_{i + 1}, a_{i + 2}, ..., a_n)
  • Chọn 1 vị trí i (1\le i\le n) và chuyển a_i về cuối dãy và dồn các phần tử phía sau lên trước. (i.e. xoay vòng dãy từ a_i đến a_n theo chiều hướng về phía đầu dãy, sau thao tác dãy sẽ trở thành a_1, a_2, ..., a_{i - 1}, a_{i + 1}, a_{i + 2}, ..., a_n, a_i)

Yêu cầu: Tìm số thao tác nhỏ nhất tạo ra một dãy mà 1\le i\le n-1 thì a_i \ge a_{i + 1} (i.e. dãy thu được là dãy không tăng).

Input và Output

Input (bàn phím)
  • Dòng đầu tiên gồm một số nguyên dương n là số lượng phần tử (1 \le n \le 3 \times 10^5).
  • Dòng thứ hai gồm n số nguyên dương a_1, a_2, ..., a_n (1 \le a_i \le 3 \times 10^5).
Output (màn hình)
  • In ra số thao tác nhỏ nhất.
Sample 1
Input (bàn phím)
4 
2 6 1 4
Output (màn hình)
2
Note
  • Chuyển phần tử thứ 1 về cuối dãy được A = \{6, 1, 4, 2\}.
  • Chuyển phần tử thứ 2 về cuối dãy được A = \{6, 4, 2, 1\} (thỏa mãn).
Sample 2
Input (bàn phím)
4 
3 1 2 4
Output (màn hình)
2
Sample 3
Input (bàn phím)
4 
1 1 2 2
Output (màn hình)
2

Bình luận

Không có bình luận nào.