Pagini recente » Cod sursa (job #1600172) | Cod sursa (job #3277818) | Cod sursa (job #293059) | Cod sursa (job #468560) | Cod sursa (job #465651)
Cod sursa(job #465651)
#include<fstream.h>
ifstream f("ratphu.in");
ofstream g("ratphu.out");
char c;
int p,v[20],l=0,sir[30],ap1[20],ap2[20];
short x[30];
unsigned long long sol,nr;
int cifra(char c)
{
if(c>='0' && c<='9') return 1;
return 0;
}
//back-ul
void back(int k)
{
int i;
if(k>l){
nr=0;
for(i=1;i<=l;++i) nr=nr*10+sir[i];
if(nr%p==0) ++sol;
}
else
for(i=1;i<=l;++i){
if(x[i]==0){
x[i]=1;
++ap2[v[i]];
sir[k]=v[i];
if(ap2[v[i]]<=ap1[v[i]]) back(k+1);
--ap2[v[i]];
x[i]=0;
}
}
}
int main()
{
c='\0';
while(c!=' ')
{
c=f.get();
if(cifra(c))
{
v[++l]=c-'0';
++ap1[c-'0'];
}
}
f>>p;
back(1);
g<<sol;
return 0;
}