mixperm

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: 1500 Thời gian: 2.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Cho hai dãy số nguyên dương độ dài \(n\): \(a = (a_1, a_2, \dots, a_n)\)\(b = (b_1, b_2, \dots, b_n)\). Biết rằng các phần tử của hai dãy số là các số nguyên dương, không nhất thiết là phân biệt, được lấy từ tập \(\{1, 2, \dots, n\}\). Đối với hai dãy đã cho ta có thể thực hiện phép biến đổi sau đây: Chọn hai chỉ số \(i\)\(j\) với \(1 \leq i \leq j \leq n\), sau đó hoán đổi hai dãy con \(a_i, a_{i+1}, \dots, a_j\)\(b_i, b_{i+1}, \dots, b_j\) của hai dãy cho nhau ta thu được hai dãy mới:

\[a_1, a_2, \dots, a_{i-1}, b_i, b_{i+1}, \dots, b_j, a_{j+1}, a_{j+2}, \dots, a_n\]

\[b_1, b_2, \dots, b_{i-1}, a_i, a_{i+1}, \dots, a_j, b_{j+1}, b_{j+2}, \dots, b_n.\]

Như vậy, phép biến đổi nêu trên được xác định bởi cặp hai chỉ số \((i, j)\).

Nếu như sau khi thực hiện phép biến đổi có ít nhất một trong hai dãy thu được là hoán vị của \(\{1, 2, \dots, n\}\), thì ta thu được một hoán vị trộn.

Yêu cầu: Hãy xác định xem có thể thu được hoán vị trộn bởi bao nhiêu cách.

Input

  • Dòng đầu tiên chứa số nguyên \(n\) (\(1 \leq n \leq 10^4\)).
  • Dòng thứ hai chứa dãy số \(a_1, a_2, \dots, a_n\).
  • Dòng thứ ba chứa dãy số \(b_1, b_2, \dots, b_n\).
  • Các số trên cùng dòng được ghi cách nhau bởi dấu cách.

Output

  • Ghi ra một số nguyên duy nhất là số cách khác nhau có thể thu được hoán vị trộn bằng cách thực hiện phép biến đổi đã nêu đối với hai dãy đã cho.

Example

Test 1

Input
6
3 2 1 4 4 5
2 3 3 4 6 5
Output
8
Note

Để thu được hoán vị trộn có thể thực hiện phép biến đổi xác định bởi các cặp chỉ số sau đây: \((1, 3), (1, 4), (3, 3), (3, 4), (4, 6), (5, 6), (4, 5), (5, 5)\). Chẳng hạn, sau khi áp dụng phép biến đổi xác định bởi cặp \((1, 3)\) đối với hai dãy đã cho ta thu được hai dãy \((2, 3, 3, 4, 4, 5)\)\((3, 2, 1, 4, 6, 5)\), mà trong đó dãy thứ hai là hoán vị.

Test 2

Input
2
1 2
1 2
Output
3
Note

Ta có thể thực hiện phép biến đổi xác định bởi các cặp chỉ số: \((1, 1), (2, 2)\)\((1, 2)\).

Scoring

  • Subtask \(1\) (\(40\%\) số điểm): \(n \leq 100\).
  • Subtask \(2\) (\(60\%\) số điểm): Không có ràng buộc gì thêm.

Bình luận

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

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