Pagini recente » Cod sursa (job #1378784) | Cod sursa (job #2477777) | Cod sursa (job #2915397) | Cod sursa (job #2757883) | Cod sursa (job #2026621)
#include <fstream>
using namespace std;
ifstream f("ratphu.in");
ofstream g("ratphu.out");
int dp[524300][25];
int rest[220];
int v[20];
int main(){
long long N;
int P;
f >> N >> P;
for(int i = 0; i <= 200; ++i){
rest[i] = i%P;
}
int cif = 0;
while(N){
v[cif++] = N%10;
N/=10;
}
dp[0][0] = 1;
int mask = (1<<cif)-1;
for(int i = 0; i < mask; ++i){
for(int j = 0; j < P; ++j){
if(dp[i][j]){
for(int k = 0; k < cif; ++k){
if((1<<k)&i) continue;
dp[i|(1<<k)][rest[j*10+v[k]]] += dp[i][j];
}
}
}
}
g << dp[mask][0];
return 0;
}