Masala D

Xotira 256 MB Vaqt 1000 ms
14

Arxiv segmentlari

Yer orbitasidagi Arxiv-Lentada ketma-ket joylashgan \(N\) ta yozuv bor. Har bir yozuv uchun \(a[i]\) qiymat berilgan (\(1..M\) oralig‘ida) — bu yozuvning maxfiylik darajasi.

Siz lentani ketma-ket bo‘laklarga ajratib, imkon qadar ko‘p mustaqil segment hosil qilmoqchisiz.

Mustaqil segment 

\([s,d]\) oralig‘idagi ketma-ket yozuvlar \(a[s], a[s+1], ..., a[d]\) mustaqil segment deyiladi, agar segmentdan tashqarida turgan har bir yozuv segment ichidagi yozuvlar bilan “aralashib” keta olmasa.

Aniqroq qilib aytganda, agar \(i\notin [s, d]\) bo‘lsa, unda quyidagi shart bajarilishi shart.

  1. \(a[i]\) segment ichidagi barcha qiymatlardan farqli:
    \(a[i] \ne a[j]\) barcha \(s \le j \le d\) uchun;

Berilgan \(N, M\) va \(a\) ketma-ketligi uchun lentani ketma-ket segmentlarga ajrating:

  • har bir indeks aynan bitta segmentga tegishli bo‘lsin;
  • segmentlar soni maksimal bo‘lsin.

Natija sifatida:

  1. maksimal segmentlar soni \(G\) ni chiqaring;
  2. har bir segmentning oxirgi indeksi (\(d\) lar) ni o‘sish tartibida chiqaring.

Eslatma: oxirgi segmentning oxirgi indeksi doim \(N\) bo‘ladi.

 

Subtasklar

- Subtask 1 (6 ball): \(M = 1\)

- Subtask 2 (7 ball): \(M = N\)

- Subtask 3 (19 ball): \(N \le 100\)

- Subtask 3 (22 ball): \(N \le 3000\)

- Subtask 4 (46 ball): Qo'shimcha cheklovlarsiz.


Kiruvchi ma'lumotlar:

Birinchi qatorda ikkita butun son - \(N, M\)beriladi: \((1\le N\le 10^6, 1\le M \le N)\)

Ikkinchi qatorda \(N\) ta butun son - \(a[1], a[2], ..., a[N]\) beriladi. \((1\le a[i] \le M, 1\le i \le N)\)

\([1, M]\) oralig‘idagi barcha qiymatlar ketma-ketlikda kamida bir marta uchraydi.


Chiquvchi ma'lumotlar:

Birinchi qatorda bitta butun son - \(G\) (maksimal mustaqil segmentlar soni) ni chiqaring.

Ikkinchi qatorda \(G\) ta butun son chiqaring: \(d_1, d_2, ..., d_G\) (bu yerda \(d_k\) - \(k\)-segmentning oxirgi indeksi).

\((1 \le d_1 < d_2 < ... < d_G = N)\)


Misollar
# input.txt output.txt
1
6 5
1 4 2 3 5 5
5
1 2 3 4 6
2
7 5
1 3 2 1 5 2 4
2
6 7