BÀI TẬP 18 [C++]: CHỌN TỪ

Cho danh sách A gồm K từ phân biệt và danh sách B gồm N ký tự.

            Yêu cầu: lần lượt xét các ký tự trong danh sách B từ trên xuống, với mỗi ký tự c, hãy ghi ra từ w tìm được trong danh sách A thỏa thứ tự ưu tiên sau:

            1. Từ w phải bắt đầu bằng ký tự c.

            2. Nếu có nhiều từ w bắt đầu bằng ký tự c, chọn từ được lấy ít nhất trong các lần trước đó.

            3. Nếu có nhiều hơn 1 từ thỏa điều kiện 1, 2; lấy từ có độ lớn (thứ tự từ điển) bé nhất.

            Dữ liệu vào đảm bảo với mỗi ký tự có đúng 1 từ được chọn.

            Input:

·        Dòng đầu ghi hai số nguyên dương K, N (1 ≤ K, N ≤ 105)

·        K dòng sau, mỗi dòng ghi 1 từ độ dài không quá 21 ký tự.

·        N dòng sau, mỗi dòng ghi 1 ký tự.

Từ và ký tự chỉ gồm các chữ cái viết thường {a … z}

Output: Ghi N dòng, mỗi dòng là 1 từ tìm được theo yêu cầu.

Ví dụ:

 Input

Output

5 5

mai

no

mung

nam

moi

n

m

n

m

n

nam

mai

no

moi

nam

 

Nhãn:

Đăng nhận xét

[blogger]

Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Được tạo bởi Blogger.
Javascript DisablePlease Enable Javascript To See All Widget