CSES - Counting Reorders | Đếm số cách sắp xếp

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: 2100 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Tính số cách có thể sắp xếp lại các ký tự của một chuỗi sao cho không có hai ký tự liền kề nào giống nhau.

Ví dụ, kết quả cho aabc\(6\), vì các thứ tự có thể là abac, abca, acab, acba, bacacaba.

Input

  • Một dòng duy nhất chứa một chuỗi \(n\) ký tự từ a - z.

Output

  • Một số nguyên duy nhất: kết quả sau khi được modulo cho \(10^9 + 7\).

Constraints

  • \(1 \leq n \leq 5000\)

Example

Test 1

Input
aabc
Output
6
Note

Các cách sắp xếp hợp lệ là: abac, abca, acab, acba, bacacaba.

Bình luận (8)

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