Crush

Xem PDF



Tác giả:
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, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1200 (p) Thời gian: 2.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Lớp ITK19 có \(n\) học sinh nam, mỗi học sinh nam này đều crush đúng một trong ba bạn nữ: Oanh Trúc, Hương An và Tuyết Ny. Hoàng Hải từng khai thác hết thông tin crush-ship của từng bạn nam trong \(n\) bạn này và ghi chép hết chúng vào một cuốn sổ tay. Thật không may, Hải vừa đánh mất cuốn sổ của mình và rất tiếc nuối các thông tin quý giá mà mình đã dày công sưu tầm. Anh ấy chỉ còn nhớ đúng \(m\) thông tin: mỗi thông tin có dạng S u v hoặc D u v, trong đó, S u v đồng nghĩa với việc học sinh \(u\) và học sinh \(v\) cùng crush chung một người, còn D u v thể hiện rằng \(u\)\(v\) crush hai người khác nhau.

Hải cho bạn biết \(m\) thông tin đó và nhờ bạn lập trình tính toán giúp có bao nhiêu trạng thái crush-ship thỏa mãn các ràng buộc mà anh đã nêu ra. Hãy giúp Hải nhé!

Input

  • Dòng đầu chứa hai số nguyên dương \(n\)\(m\) (\(n\leq 15\), \(m\leq 50\)).
  • Mỗi dòng trong \(m\) dòng tiếp theo có dạng S u v hoặc D u v thể hiện một ràng buộc tương ứng.

Output

  • Một số nguyên duy nhất là số trạng thái crush-ship thỏa mãn.

Example

Test 1

Input
4 2
S 1 2
D 1 3
Output
18
Note

\(6\) trạng thái hợp lệ cho ba học sinh đầu (T tượng trưng cho Oanh Trúc, A tượng trưng cho Hương An và N tượng trưng cho Tuyết Ny): TTA, TTN, AAT, AAN, NNTNNA. Ở mỗi trạng thái trong \(6\) trạng thái trên lại có \(3\) cách chọn crush cho học sinh thứ tư, vì vậy tổng số trạng thái thỏa mãn là \(6\cdot 3=18\).

Bình luận (1)

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

Kỳ thi: