Pagini recente » tema | Cod sursa (job #1467902) | Cod sursa (job #512408) | Cod sursa (job #1422996) | Cod sursa (job #466382)
Cod sursa(job #466382)
# include <cstdio>
const char FIN[] = "ratphu.in", FOU[] = "ratphu.out" ;
const int MAX = 20 ;
char Ch ;
long long sol[1 << MAX][MAX] ;
int N[MAX];
int P;
int main()
{
freopen ( FIN, "r", stdin ) ;
freopen ( FOU, "w", stdout ) ;
int k = 0;
for ( scanf ( "%c", &Ch ) ; Ch != ' '; scanf ( "%c", &Ch ) )
N[k++] = Ch - '0' ;
scanf ( "%d", &P ) , sol[0][0] = 1 ;
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] ) % P ] += sol[ L ][ C ] ;
printf ( "%lld", sol [ ( 1 << k ) - 1 ] [ 0 ] ) ;
return 0;
}