DÃY TỐT

Một dãy số nguyên \(C = \lbrack c_{1},\ c_{2},\ldots,\ c_{k}\rbrack\) được gọi là “khối cơ sở” của dãy tốt nếu dãy \(C\) có có giá trị của phần tử đầu tiên \(c_{1}\) bằng \(k - 1\) (k-số lượng phần tử của khối). Ví dụ: \(\ \lbrack 2,\ 3,1\rbrack;\ \lbrack 2,\ 5,\ 9\rbrack\) được gọi là “khối cơ sở” còn \(\lbrack 1,\ 3,\ 4\rbrack;\lbrack 3,\ 1\rbrack\) không được gọi là “khối cơ sở”. Dãy số nguyên \(B\) được gọi là “dãy tốt” nếu dãy \(B\) được tạo bởi từ ít nhất một“khối cơ sở”.

Cho dãy số nguyên dương \(A\) gồm \(n\) số nguyên \(a_{1},\ a_{2},\ \ldots,\ a_{n}\).

Yêu cầu: Cho biết số lượng phần tử ít nhất cần phải xóa khỏi dãy số \(A\) để được một “dãy tốt”.

Dữ liệu vào:

  • Dòng đầu tiên gồm duy nhất số nguyên dương \(n\ (1 < n \leq 10^{5})\).

  • Dòng thứ hai gồm \(n\) số nguyên \(a_{1},\ a_{2},\ a_{3},\ldots,\ a_{n}\ (1 \leq a_{i} \leq \ 10^{6}\)), các số cách nhau một kí tự trắng.

Kết quả: Ghi duy nhất một số nguyên là đáp án của bài toán.

Ví dụ:

Input Output Giải thích
7
2 3 1 9 2 5 9
1 Xóa phần tử \(a_{4} = 9\) ta thu được dãy:
[2, 3, 1, 2, 5, 9]
=[2, 3, 1]+[2, 5, 9] là dãy tốt
5
9 2 3 4 1
2 Xóa hai phần tử \(a_{1} = 9,\ a_{5} = 1\) ta thu được dãy [2, 3, 4] là dãy tốt

Ràng buộc:

  • 40% số test có \(1 < n \leq 100.\)

  • 60% số test còn lại có \(1 < n \leq 10^{5}.\)

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

hpcode.edu.vn
Code tích cực
Trong 24h
  1. sythai (5/8)
  2. npk1605 (5/10)
  3. trungnam (4/4)
Trong 7 ngày
  1. nguyenanhvu (40/64)
  2. khieuquan (35/59)
  3. ngokhang (27/55)
Trong 30 ngày
  1. quechi (85/105)
  2. dangphong3108 (79/125)
  3. kiennhientv (79/179)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38905

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