Pagini recente » Cod sursa (job #237545) | Cod sursa (job #2550998) | Cod sursa (job #1409019) | Cod sursa (job #3255071) | Cod sursa (job #911883)
Cod sursa(job #911883)
#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]-='0';
BST[1<<i][(S[i])%p]=1;
}
for( int i=0 ; i < (1<<S.size()) ; ++i )
for( int j=0 ; j < S.size() ; ++j )
if( !(i&(1<<j)) )
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;
}