Dãy điểm của Dima

Đề bài

Mô tả

Cho hai dãy điểm có toạ độ nguyên trên mặt phẳng:

  • Dãy thứ nhất gồm các điểm (a1,1),(a2,2),,(an,n).
  • Dãy thứ hai gồm các điểm (b1,1),(b2,2),,(bn,n).

Ta ghép toàn bộ 2n điểm này (mỗi điểm dùng đúng một lần) thành một dãy điểm sao cho hoành độ (toạ độ x) của các điểm theo thứ tự trong dãy không giảm. Hãy đếm số dãy điểm phân biệt có thể tạo ra như vậy.

Hai dãy ghép (p1,q1),(p2,q2),,(p2n,q2n)(x1,y1),(x2,y2),,(x2n,y2n) được xem là khác nhau nếu tồn tại chỉ số i (1i2n) sao cho (pi,qi)(xi,yi). Lưu ý hai điểm được coi là trùng nhau khi có cùng cả hoành độ lẫn tung độ; điểm (ai,i)(bi,i) trùng nhau khi và chỉ khi ai=bi.

Vì kết quả có thể rất lớn, hãy in ra phần dư của nó khi chia cho số m.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an.
  • Dòng thứ ba chứa n số nguyên b1,b2,,bn.
  • Dòng cuối chứa số nguyên m.

Dữ liệu ra

  • In ra một số nguyên duy nhất là số dãy điểm phân biệt, lấy phần dư khi chia cho m.

Ràng buộc

  • 1n105
  • 1ai,bi109
  • 2m109+7

Ví dụ

Input Output Giải thích
1
1
2
7
1 Chỉ có một dãy: (1,1),(2,1).
2
1 2
2 3
11
2 Hai dãy hợp lệ: (1,1),(2,2),(2,1),(3,2)(1,1),(2,1),(2,2),(3,2).
2
1 2
2 2
4
3 b2=a2=2 nên điểm (2,2) của hai dãy trùng nhau. Nhóm hoành độ 2 gồm ba điểm cho 3!=6 hoán vị, nhưng hai điểm trùng nhau làm giảm một nửa còn 3; kết quả 3mod4=3.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0