Cod sursa(job #790223)

Utilizator DaNutZ2UuUUBB Bora Dan DaNutZ2UuU Data 20 septembrie 2012 18:09:19
Problema Ratphu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<fstream>
using namespace std;
ifstream fin("ratphu.in");
ofstream fout("ratphu.out");

int c[20],nr,p;
long long n,a[1<<20][20];

int main()
{
	
	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)))
					{
						int h;
						h=j*10+c[k];
						while(h>=p)
							h-=p;
						a[i|(1<<k)][h]+=a[i][j];
					}
			}
		}
	}
	fout<<a[lim-1][0];
	return 0;
}