아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

좋은 집합

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

요약
1부터 N까지의 수로 만든 공집합이 아닌 부분집합 중, 모든 수의 자릿수를 모았을 때 0부터 9가 각각 많아야 한 번씩만 나오는 것의 개수를 센다.
난이도

보통10점 중 6점

유형
비트 연산, 조합론, 동적 계획법
정답자
아직 제출이 없습니다

문제

1부터 NN까지의 정수로 이루어진 집합 SS가 있다.

집합 SS의 부분 집합 가운데 좋은 집합이 몇 개인지 구하는 프로그램을 작성하시오.

좋은 집합은 원소로 들어 있는 모든 수를 10진법으로 적어 놓았을 때, 0부터 9까지의 각 숫자가 전체를 통틀어 최대 한 번만 나오는 집합이다. 공집합은 세지 않는다.

예를 들어 {12, 345, 67890}과 {47, 109}는 좋은 집합이고, {147, 342}는 숫자 4가 두 번 나오므로 좋은 집합이 아니다.

입력

첫째 줄에 NN이 주어진다. (1≤N≤1091 \le N \le 10^9)

출력

집합 SS의 부분 집합 가운데 좋은 집합의 개수를 1,000,000,007로 나눈 나머지를 출력한다.

예제2

  1. 예제 1

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

    입력
    10
    
    예상 출력
    767