HSG9 - Bình Định (2023) - Trò chơi xâu ký tự

Xem dưới dạng PDF

Gửi bài giải

Điểm: 10
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

Bạn được cho một xâu gồm \(N\) ký tự. Đầu tiên, bạn được sắp xếp lại các ký tự trong xâu theo một thứ tự bất kỳ. Sau đó, hãy chia xâu ký tự này thành chính xác \(K\) xâu ký tự liên tiếp không rỗng sao cho xâu ký tự có thứ tự từ điển lớn nhất là nhỏ nhất có thể.

Xâu \(A\) có thứ tự từ điển nhỏ hơn xâu \(B\) khi thỏa một trong các điều kiện sau:

  • \(A\) là tiền tố của \(B\) và \(A\) khác \(B\).
  • Tồn tại số \(i\) \((1 \le i \le min(|A|,|B|))\) sao cho \(A[i] \lt B[i]\) và \(A[j]=B[j]\) với mọi j \((1 \le j \lt i)\)

Ở đây, |A| là độ dài của xâu \(A\), \(min(x,y)\) là giá trị nhỏ hơn giữa \(x\) và \(y\)

Ví dụ

  • abc có thứ tự từ điển nhỏ hơn ad
  • ab có thứ tự từ điển nhỏ hơn abb

Dữ liệu vào

  • Dòng đầu tiên gồm hai số nguyên dương \(N,K\) \((1 \le K \le N \le 100)\)
  • Dòng thứ hai gồm xâu chứa \(N\) ký tự. Các ký tự là các chữ cái tiếng Anh in thường

Dữ liệu ra

  • Xâu ký tự có thứ tự từ điển lớn nhất của phương án tối ưu

Ràng buộc

  • 20% test có xâu toàn ký tự 'a'
  • 20% test có \(K=N\)
  • 60% test còn lại không có ràng buộc gì thêm

Input 1

4 2
baba

Output 1

ab

Giải thích 1

Ta có thể sắp xếp \(baba\) thành \(abab\) và chia thành hai xâu con \(ab\) và \(ab\). Khi đó xâu ký tự có thứ tự từ điển lớn nhất là \(ab\). Ta cũng có thể sắp xếp thành \(abba\) và chia thành hai xâu \(abb\) và \(a\), tuy nhiên phương án này sẽ cho xâu có thứ tự từ điển lớn nhất là \(abb\), lớn hơn so với \(ab\) ở phương án đầu tiên.

Input 2

4 2
baca

Output 2

abc

Nhận xét

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