BOI 2005 - Ancient Manuscript

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1500 Thời gian: 5.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Các nhà khảo cổ Baltic vừa tìm thấy một bản thảo cổ, nhưng nhiều phần đã hư hỏng và một số chữ cái biến mất. Một nhà khoa học nhận xét rằng các từ trong bản thảo giống một ngôn ngữ có các quy tắc sau:

  • trong một từ không có quá \(VC\) nguyên âm liên tiếp và không có quá \(CC\) phụ âm liên tiếp;
  • không có quá \(VE\) nguyên âm giống nhau liên tiếp và không có quá \(CE\) phụ âm giống nhau liên tiếp.

Các nguyên âm là a, e, i, o, u; \(21\) chữ cái còn lại là phụ âm.

Hãy tính số cách thay mỗi ký tự bị mất bằng một chữ cái thường để thu được một từ hợp lệ theo các quy tắc trên.

Dữ liệu vào

Dòng đầu chứa bốn số nguyên \(VE,VC,CE,CC\) với \(1 \le VE \le VC \le 4\)\(1 \le CE \le CC \le 4\).

Dòng thứ hai chứa một từ dài không quá \(15\) ký tự gồm các chữ cái Latin thường; mỗi chữ cái bị mất được ký hiệu bằng *.

Dữ liệu ra

In số cách khôi phục từ hợp lệ. Đáp án vừa trong số nguyên có dấu \(64\) bit; nếu không có cách nào, in 0.

Ví dụ

Ví dụ 1

Input
1 1 1 1
a**
Output
105

Ví dụ 2

Input
1 1 1 1
b*i
Output
0

Ví dụ 3

Input
1 2 1 2
ancient
Output
1

Ví dụ 4

Input
4 4 4 4
man****ipt
Output
261870

Ví dụ 5

Input
2 2 2 2
*boi*
Output
546

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: