SẮP XẾP BÀI 2

Xem dưới dạng PDF

Gửi bài giải

Điểm: 20
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Kiểu bài tập

Con trai nhỏ của Dave, Maverick thích chơi các trò chơi bài, anh luôn thua khi chơi với những người bạn lớn tuổi. Ngoài ra, sắp xếp thẻ trong tay anh ta là một vấn đề khá khó khăn với anh.

Khi Maverick nhận được thẻ bài của mình, anh ta phải sắp xếp chúng theo nhóm để tất cả các thẻ trong một nhóm có cùng màu. Tiếp theo, anh ta phải sắp xếp các thẻ trong mỗi nhóm theo giá trị của chúng - thẻ có giá trị thấp nhất phải là ngoài cùng trong nhóm. Tất nhiên, anh ta phải cầm tất cả các thẻ trong tay mọi lúc.

Anh ta phải sắp xếp các thẻ của mình càng nhanh càng tốt, tức là thực hiện càng ít động tác càng tốt. Một động thái bao gồm thay đổi vị trí của một trong những thẻ của anh ta. Viết chương trình sẽ tính toán số lần di chuyển thấp nhất cần thiết để sắp xếp thẻ.

Dữ liệu vào

  • Dòng đầu tiên của tệp đầu vào chứa hai số nguyên \(C\), số màu \((1 \le C \le 4)\) và \(N\), số lượng thẻ cùng màu \((1 \le N \le 25000)\) cách nhau bởi một ký tự khoảng trắng.
  • Mỗi dòng trong \(C \times N\) dòng tiếp theo chứa một cặp hai số nguyên \(X\) và \(Y\) \((1 \le X \le C, 1 \le Y \le N)\) cách nhau bởi một khoảng trắng: Các số trong mỗi dòng đó xác định màu \((X)\) và giá trị \((Y)\) của thẻ của Maverick. Thứ tự các dòng tương ứng với thứ tự các thẻ được xử lý cho Maverick. Không có hai dòng mô tả cùng một thẻ.

Dữ liệu ra

  • Dòng đầu ra và duy nhất của tệp đầu ra phải chứa số lần di chuyển ít nhất cần thiết để sắp xếp các thẻ như được mô tả ở trên.

Input 1

2 2
2 1
1 2
1 1
2 2

Output 1

2

Nhận xét

Không có ý kiến tại thời điểm này.