Mai intai trebuie sa te autentifici.
Cod sursa(job #2029444)
Utilizator | Data | 30 septembrie 2017 10:02:40 | |
---|---|---|---|
Problema | Ratphu | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.54 kb |
#include <bits/stdc++.h>
#define nmax 18
using namespace std;
ifstream fin ("ratphu.in");
ofstream fout ("ratphu.out");
int n,p,nr=0,v[nmax+1];
long long d[1<<nmax][20];
int main()
{
fin>>n>>p;
while(n){
v[nr++]=n%10;
n/=10;
}
d[0][0]=1;
for(int i=0;i< (1<<nr)-1;++i)
for(int j=0;j<nr;++j){
if(i & (1<<j))continue;
for(int k=0;k<p;++k)
d[i | 1<<j][(10*k+v[j])%p]+=d[i][k];
}
fout<<d[(1<<nr)-1][0]<<endl;
return 0;
}