Please read the new rule regarding the restriction on the use of AI tools. ×

How to solve this problem

Revision en2, by thnam, 2020-12-10 10:00:01

Super symmetric

We define a string of digits is symmetric as if we obtain the same results when reading it from right to left or vice versa. Example: 3, 121, 78987, ... are symetric.

A string S has k digits is called supersymmetric if following conditions are satisfied:

  • S[1..k] is symmetric;
  • S[1..k div 2] is symmetric;
  • S[k — k div 2 + 1..k] is symmetric.

For example: 0, 11, 22322,... are supersymmetric numbers.

A number is almost-supersymmetric (the first digit is always different from 0) is defined as if we could change the position of some of its digits to make a supersymmetric number (note: after changing, the first digit may be zero). For example: 8404000 is almost-supersymmetric, since 040840 is supersymmetric.

Find out how many almost-supersymmetric numbers between l and r (1 <= l <= r <= 1e50000). Print the remainder for 1e9+7.

Example 1: Input l = 3111120 r = 3111125 Output: 2

Note: 2 almost-supersymmetric numbers are 3111122 and 3111123.

Example 2: Input l = 1 r = 100 Output: 19

Note: almost-supersymmetric numbers are 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99, 100.

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en3 English thnam 2020-12-10 11:13:52 1
en2 English thnam 2020-12-10 10:00:01 33
en1 English thnam 2020-12-10 09:57:32 1192 Initial revision (published)