#1329. CARD - Tráo bài

Bộ nhớ: 256 MiB Thời gian: 500 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Nguồn: Bài tập thầy Nguyễn Thanh Bình Ôn ĐT Hải Phòng T10/2020

Đức thích chơi những trò chơi sắp xếp các quân bài. Khi cầm những quân bài, Đức sắp chúng thành từng nhóm cùng màu, tiếp theo là sắp những quân bài trong cùng nhóm theo giá trị của chúng: quân có giá trị nhỏ nhất sẽ ở bên trái của nhóm. Tất nhiên, Đức phải cầm các quân bài trên tay trong khi xếp và chuyển từng quân bài của Đức. Thứ tự các quân bài trên tay Đức ban đầu tương ứng với thứ tự chia các quân bài cho Đức. Viết chương trình tính số phép chuyển quân bài ít nhất có thể sắp xếp được các quân bài theo mô tả trên.

Dữ liệu vào:

  • Dòng đầu tiên chứa hai số nguyên dương C N với C là số màu (1≤C≤4) N là số quân bài của một màu (1≤N≤10^5) , hai số cách nhau bởi dấu trống.

  • Mỗi dòng trong C×N dòng tiếp theo chứa hai số nguyên X Y xác định màu X và giá trị Y của quân bài lần lượt chia cho Đức (1≤X≤C;1≤Y≤N) . Không có hai dòng nào cùng một quân bài.

Dữ liệu ra:

  • Một dòng duy nhất chứa số phép chuyển tối thiểu cần thực hiện.

Ví dụ:

Dữ liệu vào:
2 2
2 1
1 2
1 1
2 2
Dữ liệu ra:
1
Dữ liệu vào:
4 1
2 1
3 1
1 1
4 1
Dữ liệu ra:
0
Dữ liệu vào:
3 2
3 2
2 2
1 1
3 1
2 1
1 2
Dữ liệu ra:
2

Giới hạn:

  • Subtask \#1: 50\% số điểm có n≤100 ;
  • Subtask \#2: 50\% số điểm còn lại có n≤10^5 .