QOJ.ac

QOJ

Time Limit: 10 s Memory Limit: 256 MB Total points: 100

#23854. Menata Boneka

Statistics

Deskripsi Masalah

Seseorang yang terkait dengan JOI bekerja di sebuah toko mainan. Hari ini, ia bertugas menata sudut boneka yang ada di dalam toko.

Pada rak di sudut boneka, terdapat $N$ buah boneka yang диjajar dalam satu baris dari kiri ke kanan. Rak tersebut dibagi oleh sekat menjadi $N$ kompartemen, dengan $1$ kompartemen diisi $1$ buah boneka. Toko mainan ini menjual total $M$ jenis boneka, yang masing-masing diberi nomor dari $1$ sampai $M$. Masing-masing dari $N$ boneka yang berjajar di rak termasuk ke dalam salah satu dari $M$ jenis tersebut. Selain itu, untuk setiap jenis boneka, setidaknya terdapat $1$ buah boneka.

Agar terlihat rapi, ia ingin menyusun ulang boneka-boneka tersebut sehingga semua boneka dengan jenis yang sama ditempatkan secara berurutan tanpa terputus di rak. Ia memutuskan untuk menyusun ulang boneka dengan cara berikut:

  • Memilih beberapa dari $N$ boneka dan mengambilnya dari rak. Posisi boneka yang tidak diambil tidak digeser.
  • Mengembalikan boneka-boneka yang telah diambil ke kompartemen kosong di rak dengan urutan sesuka hati.

Setelah disusun ulang, semua boneka dengan jenis yang sama harus berada secara berurutan di rak. Buatlah program untuk mencari jumlah minimum boneka yang perlu diambil untuk menyusunnya ulang.

Format Masukan

Masukan terdiri dari $1 + N$ baris.

Pada baris ke-$1$, tertulis $2$ bilangan bulat $N, M$ ($1 \le N \le 100000$, $1 \le M \le 20$) yang dipisahkan oleh spasi, yang menyatakan bahwa terdapat $N$ boneka dan $M$ jenis boneka.

Pada masing-masing dari $N$ baris berikutnya, tertulis sebuah bilangan bulat antara $1$ hingga $M$ inklusif. Bilangan bulat yang tertulis pada baris ke-$i$ ($1 \le i \le N$) dari $N$ baris tersebut menyatakan jenis boneka yang ditempatkan pada kompartemen ke-$i$ dari kiri rak. Dijamin bahwa untuk setiap jenis terdapat setidaknya $1$ buah boneka.

Format Keluaran

Keluarkan jumlah minimum boneka yang perlu diambil untuk menyusunnya ulang dalam $1$ baris.

Contoh Masukan dan Keluaran

Contoh Masukan 1

7 2
1
2
2
2
1
2
1

Contoh Keluaran 1

2

Contoh Masukan 2

12 4
1
3
2
4
2
1
2
3
1
1
3
4

Contoh Keluaran 2

7

Pada Contoh Masukan 1, jenis boneka yang awalnya ditempatkan secara berurutan dari kiri adalah $1, 2, 2, 2, 1, 2, 1$. Untuk meminimalkan jumlah boneka yang diambil saat menyusun ulang, kita cukup mengambil boneka ke-$1$ dan ke-$6$ dari kiri, lalu menempatkan boneka jenis $2$ di posisi ke-$1$ dari kiri serta boneka jenis $1$ di posisi ke-$6$ dari kiri. Pada kondisi ini, banyaknya boneka yang diambil adalah $2$ buah.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.