Xếp gạch


Submit solution

Points: 3
Time limit: 1.0s
Memory limit: 103M

Author:
Problem type
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG

Cho n viên gạch có m màu khác nhau và cùng được xếp trên một đường thẳng. Viên gạch thứ i sẽ có 2 thông số: c[i] và x[i], trong đó, c[i] là màu của viên gạch (1<=c[i]<=m). x[i] là tọa độ kiểu số thực của viên gạch thứ i trên trục tọa độ.

Công việc của các bạn là di di chuyển các viên gạch sao cho các viên gạch cùng màu đứng cạnh nhau, và từ trái sang phải trên trục tọa độ, chỉ số của các viên gạch sẽ tăng dần tử 1 đến m.

Biết mỗi lần di chuyển là lấy 1 viên gạch và đặt vào một vị trí bất kỳ trên trục tọa độ.

Hãy xác định số lần di chuyển ít nhất để thỏa mãn yêu cầu trên.

Input:

  • Dòng đầu tiên chứa 2 số nguyên n và m lần lượt là số viên gạch và số lượng màu (1<=m<=n<=5000)
  • N dòng tiếp theo, mỗi dòng nhập số tự nhiên c[i] và số thực x[i] (1<=c[i]<=m, 0<=x[i]<=109).

Output:

  • In ra số lần di chuyển nhỏ nhất.

Example Test 1:

Input:

1 1

1 0

Output:

0

Example Test 2:

Input:

3 4

3 5.0

2 5.5

2 6.0

Output:

1

Example Test 3:

Input:

4 10

7 6.0

2 5.5

2 2.0

4 2.5

Output:

1

Comments

There are no comments at the moment.