QOJ.ac

QOJ

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

#23854. Sắp xếp thú nhồi bông

Statistics

Đề bài

Một nhân sự của JOI đang làm việc tại một cửa hàng đồ chơi. Hôm nay, người đó được phân công sắp xếp lại góc thú nhồi bông trong cửa hàng.

Trên kệ của góc thú nhồi bông, có $N$ con thú nhồi bông được xếp thành một hàng từ trái sang phải. Kệ được chia bởi các vách ngăn thành $N$ ngăn, cứ $1$ ngăn thì đặt $1$ con thú nhồi bông. Cửa hàng đồ chơi này bán tổng cộng $M$ loại thú nhồi bông, được đánh số lần lượt từ $1$ đến $M$. Mỗi con trong số $N$ con thú nhồi bông xếp trên kệ thuộc một trong $M$ loại này. Ngoài ra, với mỗi loại thú nhồi bông, có ít nhất $1$ con hiện diện.

Để trưng bày cho đẹp mắt, người đó muốn sắp xếp lại các con thú nhồi bông sao cho tất cả các con thú nhồi bông cùng loại đều được đặt liên tiếp nhau trên kệ. Cách sắp xếp lại thú nhồi bông được thực hiện như sau:

  • Chọn một số con trong $N$ con thú nhồi bông và lấy chúng ra khỏi kệ. Không dịch chuyển vị trí của những con thú nhồi bông không bị lấy ra.
  • Đặt các con thú nhồi bông đã lấy ra trở lại vào các ngăn trống trên kệ theo thứ tự tùy ý.

Sau khi sắp xếp lại, tất cả các con thú nhồi bông cùng loại phải nằm liên tiếp nhau trên kệ. Hãy viết chương trình tìm số lượng thú nhồi bông tối thiểu cần lấy ra để sắp xếp lại chúng.

Dữ liệu vào

Dữ liệu vào gồm $1 + N$ dòng.

Ở dòng $1$, ghi $2$ số nguyên $N, M$ ($1 \le N \le 100000$, $1 \le M \le 20$) cách nhau bởi khoảng trắng, cho biết có $N$ con thú nhồi bông và $M$ loại.

Ở mỗi dòng trong $N$ dòng tiếp theo, ghi một số nguyên từ $1$ đến $M$. Số nguyên ghi ở dòng thứ $i$ ($1 \le i \le N$) trong $N$ dòng biểu thị loại của con thú nhồi bông đặt ở ngăn thứ $i$ tính từ bên trái của kệ. Đảm bảo rằng với mỗi loại đều có ít nhất $1$ con thú nhồi bông.

Kết quả

In ra trên $1$ dòng số lượng thú nhồi bông tối thiểu cần lấy ra để sắp xếp lại.

Ví dụ

Ví dụ 1 - Dữ liệu vào

7 2
1
2
2
2
1
2
1

Ví dụ 1 - Kết quả

2

Ví dụ 2 - Dữ liệu vào

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

Ví dụ 2 - Kết quả

7

Trong Ví dụ 1, các loại thú nhồi bông được đặt ban đầu theo thứ tự từ trái sang phải là $1, 2, 2, 2, 1, 2, 1$. Để tối thiểu hóa số lượng thú nhồi bông cần lấy ra khi sắp xếp lại, ta chỉ cần lấy ra con thú nhồi bông thứ $1$ và thứ $6$ tính từ bên trái, sau đó đặt con thú nhồi bông loại $2$ vào vị trí thứ $1$ từ bên trái và con thú nhồi bông loại $1$ vào vị trí thứ $6$ từ bên trái. Khi đó, số lượng thú nhồi bông lấy ra là $2$ con.

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.