DHBB 2026 - DX41 - 10 - Ga tàu

Xem dạng PDF

Gửi bài giải

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

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

Thành phố THE LINE có một tuyến xe buýt chạy thẳng duy nhất đi qua ~m~ địa điểm quan trọng (được đánh mã bằng ~m~ chữ cái Latinh đầu tiên: 'a', 'b', 'c', ...). Tuyến đường này là một đường thẳng và các trạm dừng được đặt tại các vị trí liên tiếp ~1,2,\dots,m~.

Hệ thống quản lý nhận lịch trình di chuyển của một hành khách VIP trong ngày là một chuỗi ~s~ gồm ~n~ địa điểm. Ví dụ, nếu ~s =~ "aacabc", hành khách này sẽ đi từ trạm 'a' sang 'a', rồi từ 'a' sang 'c', cứ thế cho đến hết hành trình.

Chi phí để hành khách di chuyển giữa hai trạm liên tiếp trong lịch trình bằng đúng khoảng cách địa lý giữa hai trạm đó trên tuyến đường. Cụ thể, nếu trạm ~x~ ở vị trí ~pos(x)~ và trạm ~y~ ở vị trí ~pos(y)~, chi phí là ~|pos(x)-pos(y)|~.

Yêu cầu: Hãy giúp Sở giao thông thành phố sắp xếp thứ tự ~m~ trạm dừng trên tuyến đường thẳng này sao cho tổng chi phí di chuyển của hành khách VIP là nhỏ nhất.

Input

  • Dòng đầu tiên chứa hai số nguyên ~n~ và ~m~ ~(1 \le n \le 10^5; 1 \le m \le 20)~.

  • Dòng thứ hai chứa xâu ~s~ độ dài ~n~, chỉ gồm ~m~ ký tự Latinh viết thường.

Output

Ghi ra một số nguyên duy nhất là tổng chi phí tối thiểu tìm được.

Sample Input 1

6 3
aacabc

Sample Output 1

5

Notes

Thứ tự trạm tối ưu là bac.

Các vị trí a ~=2~, b ~=1~, c ~=3~.


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.