만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

진수 정렬 (Hard)

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

요약
길이 N인 M진수 문자열 S가 주어진 규칙으로 정렬된 전체 목록에서 몇 번째(0부터 시작)인지 구합니다.
난이도

보통10점 중 6점

유형
조합론, 수학, 구현
정답자
아직 제출이 없습니다

문제

한별이는 길이 NN의 MM진수를 모두 모은 뒤 특별한 방식으로 정렬하려 한다.

정렬 기준은 다음과 같다.

  • MM진수에서 M−1M-1인 자릿수의 개수가 적은 순으로 오름차순 정렬한다.
  • M−1M-1의 개수가 같다면 M−2M-2인 자릿수의 개수가 적은 순으로 정렬한다.
  • ...
  • 22의 개수가 같다면 11인 자릿수의 개수가 적은 순으로 정렬한다.
  • MM진수의 모든 숫자 개수가 같다면 MM진수를 뒤집었을 때의 오름차순으로 정렬한다.

예를 들어, NN이 2이고 MM이 3일 때 MM진수는 다음 순서로 정렬된다.

  • 00
  • 10
  • 01
  • 11
  • 20
  • 02
  • 21
  • 12
  • 22

입력

첫째 줄에 NN과 MM이 공백을 사이에 두고 주어진다.

둘째 줄에 길이 NN의 MM진수 SS가 주어진다.

MM진수는 0으로 시작할 수 있다.

출력

주어진 MM진수와 길이가 같은 모든 MM진수를 정렬했을 때, 주어진 MM진수가 몇 번째 위치에 있는지 출력한다.

위치는 0번부터 시작한다.

제한

  • 1≤N≤101\le N\le 10
  • 2≤M≤102\le M\le 10

예제2

  1. 예제 1

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

    입력
    3 3
    210
    
    예상 출력
    11