페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#5032

교란순열(완전순열) 1s 256MB

문제

교란(완전)순열 (Derangement) 이란 모자를 쓴 N명의 사람들이 모자를 벗었다가 다시 쓰는데, 

N명 모두가 자신의 모자가 아닌 모자를 쓰는 경우의 순열이다.

 

이는 치환에서 자기 자신으로 짝지어지는 부동점이 없는 경우의 순열을 말한다.

 

이 개념을 처음 제시한 프랑스의 수학자 피에르 레몽 드몽모르(Pierre Raymond de Montmort)의 이름을 따 드몽모르 수라고도 한다.

 

배열 A[N] = {0, 1, 2, ..., N - 1}을 이용하여 순열을 구할 때, 

A[i] ≠ i (i = 0, 1, 2, ..., N -  1) 를 만족하는 교란순열의 수를 구하는 프로그램을 작성하시오.

 

 


입력

수열의 크기 N이 주어진다.

(1 <= N <= 1,000,000)


출력

교란순열의 수를 1,000,000,007로 나눈 나머지를 출력한다.


예제 #1

2
1

예제 #2

3
2


출처

comkiwer

로그인해야 코드를 작성할 수 있어요.