Điều hướng chính

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Đếm xâu con

Dễ

  • 100 Điểm
  • 0% Tỉ lệ AC
  • 0 Số AC
  • 256M Bộ nhớ giới hạn
  • 1.0s Giới hạn thời gian

Cho một xâu kí tự \(s\) chứa các kí tự "a", "b", "c", và "?".

Gọi số lượng kí tự "?" trong xâu \(s\) là \(k\). Mỗi dấu "?" trong xâu ta có thể thay thế bằng \(1\) trong \(3\) kí tự "a", "b", "c". Như vậy, có thể tạo ra \(3^k\) xâu chỉ chứa các kí tự "a", "b", "c". Ví dụ, xâu \(s\) = "ac?b?c" ta có thể tạo ra được \(9\) xâu ["acabac", "acabbc", "acabcc", "acbbac", "acbbbc", "acbbcc", "accbac", "accbbc", "accbcc"].

Yêu cầu: Đếm tất cả các xâu con "abc" xuất hiện trong tất cả các xâu có thể tạo ra. In ra kết quả theo modulo \(10^9 + 7\).

Nhắc lại: Xâu con là xâu có thể thu được bằng cách xóa các kí tự ở một số các vị trí trong xâu. Xâu con của xâu "abc" là: ["", "a", "b", "c", "ab", "ac", "bc", "abc"].

Input

Dòng đầu tiên là số nguyên dương \(n\) - độ dài xâu \(s\).

Dòng thứ hai là xâu \(s\) chỉ chứa các kí tự "a", "b", "c", "?".

Output

Kết quả bài toán.

Example

Test 1

Input
6
ac?b?c
Output
24
Note

Trong ví dụ đầu tiên, ta có thể tạo ra 9 xâu:

"acabac" --- có 2 xâu con "abc",

"acabbc" --- có 4 xâu con "abc",

"acabcc" --- có 4 xâu con "abc",

"acbbac" --- có 2 xâu con "abc",

"acbbbc" --- có 3 xâu con "abc",

"acbbcc" --- có 4 xâu con "abc",

"accbac" --- có 1 xâu con "abc",

"accbbc" --- có 2 xâu con "abc",

"accbcc" --- có 2 xâu con "abc".

Vậy, có tất cả 2+4+4+2+3+4+1+2+2=24 xâu con "abc".

Scoring

\(20\%\) số test có \(n \leq 10\).

\(20\%\) số test có \(n \leq 50\).

\(20\%\) số test có \(n \leq 1000\).

\(20\%\) số test đảm bảo xâu \(s\) không có kí tự "?" nào.

\(20\%\) số test cos \(n \leq 200000\).

Bình luận

Chưa có bình luận nào.