Cod sursa(job #498037)

Utilizator nusmaibunkeleviprofesor cicalescu nusmaibunkelevi Data 3 noiembrie 2010 21:35:02
Problema Ratphu Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<stdio.h>
#include<string.h>

long long nr;
int n,p,v[30],s[30],u[30];
char sir[30];

void scrie(){
int i;
long long nou=0;
for(i=1;i<=n;++i)
	nou=nou*10+v[s[i]];
if(nou%p==0) ++nr;
}
/*
void scrie(){
int i;
for(i=1;i<=n;++i) printf("%d",s[i]);
printf("\n");
} */

void back(){
int as,k=1;
s[k]=0;
while(k){
	do{s[k]++;}while((as=s[k]<=n)&&u[s[k]]);
	if(as){
		u[s[k]]=1;
		if(k==n) {scrie();goto iar;}
		else s[++k]=0;
		}
	else {
		iar:
		u[s[k]]=0;
		k--;
		u[s[k]]=0;
		}
	}
}

int main(){
freopen("ratphu.in","r",stdin);
freopen("ratphu.out","w",stdout);
int i;
scanf("%s%d",sir,&p);
n=strlen(sir);
for(i=0;i<n;++i) v[i+1]=sir[i]-48;
back();
printf("%lld",nr);
return 0;
}