[DHBB25 - DX05 - 10] Bài 2: Tổ chức dữ liệu

Xem dạng PDF

Gửi bài giải

Điểm: 30,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Sau khi xử lý cấu trúc dữ liệu thành công, nhóm nghiên cứu tiếp tục nâng cấp hệ thống AI để có thể tối ưu cách sắp xếp và tổ chức dữ liệu. Trong quá trình này, hệ thống gặp phải thách thức về việc xếp các gói dữ liệu giống nhau ở cạnh nhau mà không được thay đổi thứ tự xuất hiện của chúng và mỗi lần đổi chỗ không được hoán đổi 2 gói dữ liệu cách nhau vượt quá khoảng cách ~k~.

Yêu cầu: Hãy lập trình thuật toán thực hiện tối thiểu việc đổi chỗ dữ liệu các gói dữ liệu sao cho:

  • Các gói dữ liệu giống nhau đứng cạnh nhau.
  • Thứ tự các gói trong dãy ban đầu được giữ nguyên.
  • Mỗi lần đổi chỗ, không được phép hoán đổi 2 gói dữ liệu có khoảng cách lớn hơn giá trị ~k~.

Input

  • Dòng 1: gồm 2 số nguyên ~n, k~ cách nhau bởi dấu cách – lần lượt là số lượng các gói dữ liệu và khoảng cách tối đa giữa 2 gói mà robot có thể hoán đổi (~1 \le n \le 10^5, 1 \le k \le n~).
  • Dòng 2: Chứa ~n~ số nguyên đại diện cho ID của các gói dữ liệu (~1 \le ID \le 10^9~).

Output

  • Một số nguyên duy nhất là số lượng phép đổi chỗ tối thiểu cần thực hiện để hoàn thành nhiệm vụ. Nếu không thể thực hiện, in -1.

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.