Pagini recente » Cod sursa (job #2715049) | Cod sursa (job #1295860) | Cod sursa (job #1071345) | Cod sursa (job #2031937) | Cod sursa (job #911864)
Cod sursa(job #911864)
#include <fstream>
#include <string>
using namespace std;
string S;
int p;
int BST[262145][21];
void READ ()
{
ifstream in ("ratphu.in");
in>>S>>p;
}
void SOLVE ()
{
for( size_t i=0 ; i < S.size() ; ++i )
++BST[1<<i][(S[i]-'0')%p];
for( int i=0 ; i < (1<<S.size()) ; ++i )
for( int j=0 ; j < S.size() ; ++j )
{
if( i&(1<<j) )
continue;
for( int k=0 ; k < p ; ++k )
BST[i|(1<<j)][(k*10+(S[j]-'0'))%p]+=BST[i][k];
}
}
void PRINT ()
{
ofstream out ("ratphu.out");
out<<BST[(1<<S.size())-1][0];
}
int main ()
{
READ ();
SOLVE ();
PRINT ();
return 0;
}