Zapina

시간 제한1초메모리 제한512 MB

요약
N명의 프로그래머에게 N개의 서로 다른 과제를 나눠 줄 때, i번째 프로그래머가 정확히 i개의 과제를 받아 만족하는 사람이 최소 한 명 이상인 경우의 수를 1e9+7로 나눈 나머지로 구한다.
난이도

어려움10점 중 8점

유형
조합론, 동적 계획법, 수학, 정수론
정답자
아직 제출이 없습니다

문제

자그레브 근교 크라피나에서 열린 겨울 캠프에서 N명의 젊은 프로그래머가 시즌 후반기를 준비하고 있다. 질서와 규율, 근면을 강조하는 말나르 선생은 프로그래머들에게 한 줄로 서게 하고 각자에게 몇 개의 과제(0개일 수도 있다)를 주었다. 서로 다른 N개의 과제를 모두 나눠 주었으며, 줄에서 i번째 프로그래머는 정확히 i개의 과제를 받으면 행복해한다.

말나르 선생이 과제를 나눠 주는 방식 중에서, 적어도 한 명의 프로그래머가 행복해지는 경우의 수를 구하시오. 두 방식은, 어떤 프로그래머와 과제에 대해 한 방식에서는 그 프로그래머가 그 과제를 받았고 다른 방식에서는 받지 않은 경우가 존재하면 서로 다른 것으로 본다.

입력

첫째 줄에 정수 N (1 ≤ N ≤ 350)이 주어진다.

출력

찾는 경우의 수를 109 + 7로 나눈 나머지를 출력한다.

예제3

  1. 예제 1

    입력
    1
    
    예상 출력
    1
    
  2. 예제 2

    입력
    2
    
    예상 출력
    3
    
  3. 예제 3

    입력
    314
    
    예상 출력
    192940893