Pagini recente » oni_2010 | Cod sursa (job #824232) | Cod sursa (job #2902446) | Cod sursa (job #2227012) | Cod sursa (job #7048)
Cod sursa(job #7048)
#include<iostream.h>
#include<fstream.h>
#include<string.h>
fstream f("diviz.in",ios::in);
fstream g("diviz.out",ios::out);
int x[201],k,kk,a,da,b,as,ev,l,nr,nrs;
char s[201] ;
void init()
{ x[k]=-1;
}
int succesor()
{ if(x[k]<1&&k<=l)
{x[k]++;
return 1;}
else
return 0;
}
int valid()
{ return (k<=l);
}
int solutie()
{ int sum=0,i,nr=0;
for(i=1;i<=l;i++)
if(x[i])
nr++;
if((nr>=a)&&(nr<=b))
{for(i=1;i<=l;i++)
if(x[i])
sum=(sum*10)+(s[i-1]-'0');
if(sum%kk==0)
return 1;
else
return 0;
}
else
return 0;
}
void back()
{ k=1;
nr=0;
nrs=0;
init();
while(k)
{ do
{ as=succesor();
if(as)
ev=valid();
}
while(as&&!ev);
if(as)
if(solutie())
nrs++;
else
{k++,init();}
else
k--;
}
}
int main()
{ f>>kk>>a>>b;
f.get();
f.get(s,201);
l=strlen(s);
back();
g<<(nrs&30103);
f.close();
g.close();
return 0;
}