Pagini recente » Cod sursa (job #777548) | Cod sursa (job #583450) | Cod sursa (job #2924829) | Cod sursa (job #987179) | Cod sursa (job #1721485)
//Nu e sursa mea
#include <bits/stdc++.h>
const int EXP = 19;
const int MOD = 20;
using namespace std;
long long dp[1 << EXP][MOD];
int n, p; char s[EXP];
inline int f( int x ) {
while( x >= p )
x -= p;
return x;
}
int main( void ) {
ifstream input_file ( "ratphu.in" );
ofstream output_file( "ratphu.out" );
input_file >> s >> p; n = strlen(s);
dp[0][0] = 1;
for( int mask = 0; mask < (1 << n); mask ++ ) {
for( int r = 0; r < p; r ++ ) {
if( dp[mask][r] == 0 )
continue;
for( int i = 0; i < n; i ++ ) {
if( (mask & (1 << i)) )
continue;
dp[mask + (1 << i)][f(r * 10 + (s[i] - '0'))] += dp[mask][r];
}
}}
output_file << dp[(1 << n) - 1][0];
return 0;
}