Pagini recente » Cod sursa (job #2010210) | Cod sursa (job #783749) | Cod sursa (job #2455005) | Cod sursa (job #27427) | Cod sursa (job #593171)
Cod sursa(job #593171)
# include <cstdio>
# include <string>
const char FIN[] = "ratphu.in", FOU[] = "ratphu.out" ;
const int MAX = 20 ;
long long sol[1 << MAX][MAX] ;
char N[MAX];
int P;
int main()
{
freopen ( FIN, "r", stdin ) ;
freopen ( FOU, "w", stdout ) ;
scanf ( "%s %d", &N, &P ) , sol[0][0] = 1 ;
int k = strlen ( N ) ;
for (int L = 0; L < 1 << k; ++L)
for (int C = 0; C < P; ++C)
if ( sol[ L ][ C ] )
for (int i = 0; i < k; ++i)
if ( ( L & ( 1 << i ) ) == 0 )
sol [ L | ( 1 << i ) ] [ ( C * 10 + N[i] - '0' ) % P ] += sol[ L ][ C ] ;
printf ( "%lld", sol [ ( 1 << k ) - 1 ] [ 0 ] ) ;
return 0;
}