Gửi bài giải


Điểm: 15
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
đầu vào: stdin
Đầu ra: stdout

Tác giả:
Kiểu bài tập

Bé Bình mới vào lớp Một và đang học ghép vần. Trong giờ Tiếng Việt, cô giáo đưa cho Bình một xâu chữ cái \(S\) dài và một danh sách gồm \(N\) từ vựng đã học. Nhiệm vụ của Bình là kiểm tra xem có thể tách xâu \(S\) thành các đoạn liên tiếp (không thừa, không thiếu ký tự) sao cho mỗi đoạn đều là một từ nằm trong danh sách từ vựng hay không. Mỗi từ trong danh sách có thể được dùng lại nhiều lần.

Bình rất chăm chỉ nhưng xâu quá dài nên cần nhờ bạn giúp. Hãy cho biết \(S\) có tách được theo cách trên không.

Định dạng đầu vào

  • Dòng đầu tiên chứa xâu \(S\) (độ dài \(|S| \le 5000\), gồm chữ cái Latin in thường).
  • Dòng thứ hai chứa số nguyên \(N\) (\(1 \le N \le 1000\)).
  • \(N\) dòng tiếp theo, mỗi dòng chứa một từ vựng (độ dài mỗi từ không quá \(20\), chữ cái Latin in thường).

Định dạng đầu ra

  • In ra YES nếu có thể tách được, ngược lại in ra NO.

Ví dụ

Input:

applepenapple
2
apple
pen

Output:

YES

Ràng buộc

  • \(30\%\) số điểm ứng với \(|S| \le 100\).
  • \(30\%\) số điểm ứng với \(|S| \le 1000\).
  • \(40\%\) số điểm còn lại không có ràng buộc gì thêm.

Nhận xét

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