EraseChar - XÓA KÝ TỰ
Dữ liệu vào: standard input
Dữ liệu ra: standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 128 megabyte
Đăng bởi: nhungchuyenhg

Một xâu kí tự được gọi là một xâu đối xứng nếu đọc xâu đó từ trái sang phải cũng giống như đọc từ phải sang trái. Ví dụ, các câu “aba”, “madam”, “a” là các xâu đối  xứng; các xâu “abc”, “abbaa”, “ab” không phải là xâu đối xứng.

Cho xâu kí tự St gồm N kí tự thuộc tập chữ cái latinh thường. Thực hiện xóa các kí tự ở bên trái, bên phải (cũng có thể xoá các kí tự ở một bên) của xâu St sao cho:

• Tổng số các kí tự bị xóa bằng K.

• Các kí tự còn lại tạo thành một xâu đối xứng.

Ví dụ:

Cho xâu St = “abbc”, K= 2, ta có thể xóa 1 kí tự 1 bên trái và 1 kí tự bên phải để nhận được xâu “bb” là xâu đối xứng;

Cho xâu St = “aabc”, K= 2, ta có thể xóa 0 kí tự bên trái và 2 kí tự bên phải để nhận được xâu “aa” là xâu đối xứng,

Cho xâu St = aabbb”, K = 2, ta có thể xóa 2 kí tự bên trái và 0 kí tự bên phải để nhận được xâu “bbb” là xâu đối xứng;

Cho xâu St = “abcde”, K = 2, ta không thể xóa 2 kí tự ở 2 bên (trái, phải) của xâu St để nhận được xâu đối xứng.

Yêu cầu: Hãy đưa ra xâu đối xứng nhận được sau khi xóa K kí tự thuộc bên trái, bên phải của xâu St.

Dữ liệu cho trong file văn bản EraseChar.Inp gồm:

• Dòng thứ nhất ghi 2 số nguyên dương N và K.

• Dòng thứ hai ghi xâu kí tự gồm N kí tự thuộc tập chữ cái Latinh thường.

Kết quả ghi ra tile văn bản EraseClar.Out là xâu đối xứng nhận được sau khi xóa K kí tự thuộc bên trái, bên phải của xâu St. Nếu có nhiều cách xóa, hãy đưa ra xâu đối xứng nhận được trong một cách xóa bất kì, nếu không có cách xóa, hãy đưa ra “No”.

Ví du:

EraseChar.Inp

EraseChar.Out

Giải thích

6 3

aabbbe

bbb

Xóa 2 kí tự “aa” bên trái và 1 kí tự e bên phải

6 3

abcdsd

dsd

 

Xóa 3 kí tự “abc” bên trái

6 3

No

Không có cách xóa

Giới hạn:

• Có 80% số test ứng với 1 <=K<N<=255;

• Có 20% số test ứng với 1<=K<N <=2000.

Ví dụ

Back to Top