Cod sursa(job #469534)

Utilizator ionicaion ionica Data 8 iulie 2010 10:26:37
Problema Ratphu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<fstream.h>
//#include<iostream.h>
long long nr[(1<<18)+1][21];
char c;
int a[21];
int main()
{
	int p,i,n,i1,r1,j,r;
	ifstream f("ratphu.in");
	ofstream g("ratphu.out");
	n=0;
	f.get(c);
	while(c!=' ')
	{n++;
		a[n]=c-'0';
		f.get(c);
	}
	int u=1,v=n,aux;
	while(u<v)
	{aux=a[u];a[u]=a[v];a[v]=aux;
	u++;v--;
	}
		
	
	f>>p;
	
	for(i=0;i<n;i++)
		nr[1<<i][a[i+1]%p]=1;
	
	for(i=0;i<(1<<n);i++)
		for(r=0;r<p;r++)
			if(nr[i][r]>0)
				for(j=0;j<n;j++)
				 if((i&(1<<j))==0)
					{i1=i|(1<<j);
					 r1=(r*10+a[j+1])%p;
					 nr[i1][r1]=nr[i1][r1]+nr[i][r];
					}
				
	g<<nr[(1<<n)-1][0]<<'\n';
}