Cod sursa(job #754208)

Utilizator bora_marianBora marian bora_marian Data 31 mai 2012 23:30:27
Problema Ratphu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<iostream>
#include<fstream>
#define DIM 20
using namespace std;
int c[DIM],nr,p;
long long n,a[1<<DIM][DIM];
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)))
					{
						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;
}