USACO 2026 Third Contest, Bronze

Problem 2. Strange Function


Contest has ended.

Log in to allow submissions in analysis mode


For all positive integers $x$, the function $f(x)$ is defined as follows:

  • If $x$ has any digits that aren't $0$ or $1$, for each digit of $x$, set it to $1$ if it is odd or $0$ otherwise, and return $x$.
  • Otherwise, return $x-1$.

Given a value of $x$ ($1 \leq x < 10^{2\cdot 10^5}$), find how many times $f$ needs to be applied to $x$ until $x$ reaches $0$. As this number might be very large, output its remainder when divided by $10^9+7$.

INPUT FORMAT (input arrives from the terminal / stdin):

The first line contains $T$ ($1\le T\le 10^5$), the number of independent tests.

The next $T$ lines each contain a positive integer $x$ consisting solely of the digits 0-9, with no leading zeros.

It is guaranteed that the total number of digits in all input integers does not exceed $10^6$.

OUTPUT FORMAT (print output to the terminal / stdout):

For each test case, output the remainder of the number of times when divided by $10^9+7$ on a separate line.

SAMPLE INPUT:

2
24680
210

SAMPLE OUTPUT:

1
4

First test: $x$ becomes zero after one operation.

Second test: $f(x)=10, f^2(x)=9, f^3(x)=1, f^4(x)=0$

SAMPLE INPUT:

1
1234567890123456789012345678901234567890

SAMPLE OUTPUT:

511620083

SCORING:

  • Inputs 3-5: $T\le 2000$, $x< 10^{9}$
  • Inputs 6-7: $x<10^{18}$
  • Inputs 8-9: $x<10^{60}$
  • Inputs 10-12: No additional constraints.

Problem credits: Aidan Bai

Contest has ended. No further submissions allowed.