Pagini recente » Cod sursa (job #2143526) | Cod sursa (job #431837) | Cod sursa (job #159632) | Cod sursa (job #193436) | Cod sursa (job #2298305)
#include <iostream>
#include <fstream>
#include <vector>
#include <cstring>
#define MOD 30103
using namespace std ;
int n , k , A , B ;
long long cnt ;
char s [ 205 ] ;
int a [ 205 ][ 15 ] ;
void preprocess ()
{
for ( int j = 0 , lm =-1 ; j < 10 ; ++ j , lm = -1 )
{
for ( int i = n ; i >= 0 ; i -- )
{
a [ i ][ j ] = lm ;
if ( i )
if ( s [ i - 1 ] - '0' == j ) lm = i ;
}
}
}
void dpr ( int i , int j , int r )
{
for ( int p = 0 ; p < 10 ; ++ p )
if ( a [ j ][ p ] != -1 )
{
if ( ( r * 10 + p ) % k == 0 && ( i + 1 ) >= A && i + 1 <= B ) cnt ++ ;
dpr ( i + 1 , a [ j ][ p ] , ( r * 10 + p ) % k ) ;
}
}
int main ()
{
cin >> k >> A >> B ;
cin >> s ;
n = strlen ( s ) ;
preprocess () ;
for ( int i = 0 ; i < 10 ; ++ i )
if ( a [ 0 ][ i ] != -1 )
dpr ( 1 , a [ 0 ][ i ] , i % k ) ;
cout << cnt % MOD ;
return 0 ;
}