숫자를 나열하면 보통 하나의 수를 뜻하지만, 다르게 해석할 수도 있다. 이 문제에서는 길이가 같은 숫자 나열 사이에 새로운 순서 관계 ≺ 를 정의한다.
n 개의 숫자로 이루어진 나열 s=d1d2⋯dn 을 생각하자. 각 di (1≤i≤n) 는 0 부터 9 까지의 숫자 하나다. sum(s), prod(s), int(s) 를 다음과 같이 정의한다.
- sum(s)=d1+d2+⋯+dn
- prod(s)=(d1+1)×(d2+1)×⋯×(dn+1)
- int(s)=d1×10n−1+d2×10n−2+⋯+dn×100
int(s) 는 나열 s 를 평범하게 십진수로 읽은 정수다.
길이가 같은 두 나열 s1 과 s2 에 대해, 다음 세 조건 중 하나를 만족할 때 그리고 그때만 s1≺s2 이다. 즉 s1 이 s2 보다 작다.
- sum(s1)<sum(s2)
- sum(s1)=sum(s2) 이고 prod(s1)<prod(s2)
- sum(s1)=sum(s2) 이고 prod(s1)=prod(s2) 이고 int(s1)<int(s2)
길이가 2 인 나열끼리는 이 순서가 다음과 같이 매겨진다.
00≺01≺10≺02≺20≺11≺03≺30≺12≺21≺⋯≺89≺98≺99
길이가 n 인 나열 s 가 주어진다. 위에서 정의한 순서로 s 보다 작은 길이 n 의 나열이 몇 개인지 세어라.