Cod sursa(job #754205)

Utilizator bora_marianBora marian bora_marian Data 31 mai 2012 23:27:42
Problema Ratphu Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include<iostream>
#include<fstream>
#define DIM 20
using namespace std;
int c[DIM],nr,a[1<<DIM][DIM],p;
long long n;
int main()
{
	ifstream fin("ratphu.in");
	ofstream fout("ratphu.out");
	fin>>n>>p;
	int i,j,k;
	while(n)
	{
		c[nr++]=n%10;
		n=n/10;
	}
	int lim=(1<<nr);
	for(i=0;i<nr;++i)
		++a[1<<i][c[i]%p];
	for(i=1;i<lim;++i)
	{
		for(j=0;j<p;++j)
		{
			if(a[i][j]!=0)
			{
				for(k=0;k<nr;++k)
					if(!(i&(1<<k)))
						a[i|(1<<k)][(j*10+c[k])%p]+=a[i][j];
			}
		}
	}
	fout<<a[lim-1][0];
	return 0;
}