Cod sursa(job #1276087)
Utilizator | Data | 25 noiembrie 2014 22:19:31 | |
---|---|---|---|
Problema | Ratphu | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.66 kb |
#include<fstream>
#include<cstring>
using namespace std;
ifstream fin("ratphu.in");
ofstream fout("ratphu.out");
char s[24];
int n,r,p,a[24],P[24],D[1<<19][24];
int main()
{
int i,j,k;
fin>>s>>p;
n=strlen(s);
for (i=0;i<n;++i)
a[i]=s[i]-'0';
for (i=2,P[1]=1;i<=n;++i)
P[i]=P[i-1]*10%p;
D[0][0]=1;
for (i=1;i<(1<<n);++i)
for (k=0;k<n;++k)
if (i&(1<<k))
for (j=0;j<p;++j)
{
r=j*10+a[k];
while (r>=p) r-=p;
D[i][r]+=D[i-(1<<k)][j];
}
fout<<D[(1<<n)-1][0]<<"\n";
return 0;
}