청정수열 (Hard)
시간 제한1초메모리 제한1024 MB
N이 주어질 때, 1부터 N까지 각 수가 두 번씩 나타나는 수열 중 점수가 최대인 값과 그 값을 만드는 수열의 개수를 10^9+7로 나눈 나머지로 구합니다.
문제
청정수열은 길이가 이고, 부터 까지의 정수가 각각 정확히 두 번씩 들어 있는 수열이다.
청정수열의 점수는 이상 이하인 모든 정수 에 대해 다음 값을 구한 뒤 모두 더한 합이다.
- (두 사이에 있는 수들의 합) ×
여기서 사이에는 양 끝의 도 포함한다.
길이가 인 청정수열 중 점수의 최댓값과, 그 최댓값을 갖는 청정수열의 개수를 구한다. 답이 매우 커질 수 있으므로 각각 로 나눈 나머지를 구한다.
입력
첫째 줄에 정수 이 주어진다 ( 이상 이하).
출력
첫째 줄에 청정수열 점수의 최댓값을 로 나눈 나머지와, 점수가 최대인 청정수열의 개수를 로 나눈 나머지를 공백으로 구분하여 출력한다.
힌트
일 때 는 청정수열이다. 이 수열의 점수는 다음과 같이 계산된다.
두 사이의 수는 이므로 을 점수에 더한다.
두 사이의 수는 이므로 를 점수에 더한다.
두 사이의 수는 이므로 을 점수에 더한다.
따라서 점수는 으로 이다.