Pagini recente » Istoria paginii runda/grafuri/clasament | Istoria paginii runda/de_ce_sa_ne_certam_iubi/clasament | Istoria paginii runda/simulare-cartita-06/clasament | Istoria paginii runda/iconcurs5/clasament | Cod sursa (job #1330697)
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("ratphu.in");
ofstream g("ratphu.out");
int D[1<<20][21];
char sir[20];
int n,p;
int main()
{
int i,j,k,q;
f>>sir>>p;
n = strlen(sir);
for(i=0;i<n;++i) sir[i] -= '0';
D[0][0] = 1;
for(i=0; i < (1<<n); ++i) for(j=0;j<p;++j) if(D[i][j])
{
for(k=0;k<n;++k) if( ( (1<<k) & i ) == 0)
{
q = 10*j + sir[n-k-1];
while(q >= p) q -= p;
D[((1<<k)|i)][q] += D[i][j];
}
}
g<<D[(1<<n)-1][0]<<"\n";
f.close();
g.close();
return 0;
}