Cod sursa(job #1706615)
| Utilizator | Data | 22 mai 2016 21:40:52 | |
|---|---|---|---|
| Problema | Ratphu | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.67 kb |
#include <bits/stdc++.h>
#define maxN 20
using namespace std;
long long dp[maxN][1<<18];
int v[maxN],n,p,i,j,mask,maxC,nrc,k,aux;
char s[maxN];
int main()
{
ifstream f("ratphu.in");
ofstream g("ratphu.out");
f>>s>>p;
n=strlen(s);
for(i=0;i<n;i++)
v[i]=s[i]-'0';
dp[0][0]=1;
for(mask=1;mask<(1<<n);mask++)
for(k=0;k<n;k++)
if(mask&(1<<k))
for(j=0;j<p;j++)
{
aux=10*j+v[k];
while(aux>=p)
aux-=p;
dp[mask][aux]+=dp[mask-(1<<k)][j];
}
g<<dp[(1<<n)-1][0];
return 0;
}
