Pagini recente » Cod sursa (job #2248060) | Cod sursa (job #110523) | Cod sursa (job #1415160) | Cod sursa (job #2131980) | Cod sursa (job #911886)
Cod sursa(job #911886)
#include <fstream>
#include <string>
#include <vector>
using namespace std;
string S;
int p;
long long BST[1<<18][21];
void READ ()
{
ifstream in ("ratphu.in");
in>>S>>p;
}
void SOLVE ()
{
for( size_t i=0 ; i < S.size() ; ++i )
{
S[i]=(S[i]-'0')%p;
BST[1<<i][S[i]]=1;
}
for( int i=0 ; i < (1<<S.size()) ; ++i )
for( int j=0 ; j < S.size() ; ++j )
if( (i&(1<<j)) == 0 )
for( int k=0 ; k < p ; ++k )
BST[i|(1<<j)][(k*10+S[j])%p]+=BST[i][k];
}
void PRINT ()
{
ofstream out ("ratphu.out");
out<<BST[(1<<S.size())-1][0];
}
int main ()
{
READ ();
SOLVE ();
PRINT ();
return 0;
}