CHU TRÌNH HOÁN VỊ

View as PDF

Submit solution

Points: 100.00 (partial)
Time limit: 1.0s
Memory limit: 1G
Input: stdin
Output: stdout

Author:
Problem type
Allowed languages
C, C++, GAS64, Pascal, Perl, PHP, Python, Sed, TCL, Text

Bờm rất thích hoán vị. Một hoán vị N là một cách sắp xếp N số nguyên dương từ 1 đến N, mỗi số chỉ xuất hiện một lần. Ví dụ 1 3 5 2 4 là một hoán vị 5. Phép nhân 2 hoán vị N (a1, a2, a3, … , an) và (b1, b2, b3, … ,bn) được định nghĩa như sau: (a1, a2, a3, … , an) x (b1, b2, b3, … ,bn) = (ab1,ab2, ab3, …, abn)

Ví dụ : (2 5 1 4 3) x (3 4 2 5 1) = (1 4 5 3 2) Phép lũy thừa hoán vị được định nghĩa theo phép nhân hoán vị : (a1, a2, a3, … , an)2 = (a1, a2, a3, … , an) x (a1, a2, a3, … , an) (a1, a2, a3, … , an)k = (a1, a2, a3, … , an) x (a1, a2, a3, … , an) x … x (a1, a2, a3, … , an) (k phép nhân hoán vị).

Bờm nhận thấy có những số nguyên X mà (a1, a2, a3, … , an)X = (a1, a2, a3, … , an). Khi đó ta gọi X là một chu trình của (a1, a2, a3, … , an). Với một một hoán vị ban đầu (a1, a2, a3, … , an). Bờm muốn tìm số nguyên dương K nhỏ nhất sao cho K+1 là một chu trình của (a1, a2, a3, … , an). Hãy giúp Bờm.

Dữ liệu vào:

  • Dòng đầu ghi số nguyên dương N (1 <= N <= 2x105).
  • Dòng thứ 2 gồm N số nguyên dương khác nhau đôi một thể hiện hoán vị ban đầu.

Kết quả:

  • Gồm một số nguyên M duy nhất là số dư của K cho 109+7.
Ví dụ:
INPUT 1
Copy
5
5 3 2 1 4
OUPUT 1
Copy
6
INPUT 2
Copy
5
1 2 3 4 5
OUPUT 2
Copy
1

Comments

Please read the guidelines before commenting.


There are no comments at the moment.