Cod sursa(job #476448)
| Utilizator | Data | 10 august 2010 23:39:41 | |
|---|---|---|---|
| Problema | Ratphu | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.49 kb |
#include <cstdio>
int P, i, j, k, n;
long long S[1<<18][20];
char c[18];
int main()
{
freopen("ratphu.in","r",stdin);
freopen("ratphu.out","w",stdout);
do
scanf("%c", &c[n++]);
while (c[n-1] != ' ');
scanf("%d", &P);
--n;
S[0][0] = 1;
for (i=0; i<(1<<n); ++i)
for (k=0; k<=n; ++k)
if ((i&(1<<k))==0)
for (j=0; j<P; ++j)
S[i^(1<<k)][(j*10+c[k]-'0')%P] += S[i][j];
printf("%lld\n", S[(1<<n)-1][0]);
return 0;
}
