Pagini recente » Cod sursa (job #2537627) | Cod sursa (job #3218318) | Cod sursa (job #1596767) | Cod sursa (job #2394689) | Cod sursa (job #471912)
Cod sursa(job #471912)
#include<fstream.h>
ifstream f("ratphu.in");
ofstream g("ratphu.out");
int n,k=0,i,p,i1,i2,i3,i4,ca,dca,b1;
long long rez=0,nrf;
char cif[20],cit,a[400000][21];
int main(){
while(cit!=' '){
cit=f.get();
if(cit!=' ')
cif[++k]=cit;
}
f>>p;
//g<<k;
for(i1=1;i1<=k;++i1){//mergi prin toate cifrele
if(i1!=k){//daca nu e nr de cifre care te intereseaza
dca=ca;
for(i2=1;i2<=dca;++i2){//treci prin toate pentru a forma cu i1 cifre
b1=0;
for(i3=1;b1<=1/*a[i2][i3]!='\0'*/;++i3){//i3 e pozitia unde o sa pui cifra noua
++ca;
if(b1==0){
for(i4=1;i4<i3;++i4) a[ca][i4]=a[i2][i4];//pui cifrele dinainte
a[ca][i3]=cif[i1];//pui cifra care treb adaugata
for(i4=i3;a[i2][i4]!='\0';++i4) a[ca][i4+1]=a[i2][i4];//le pui pe cele de dupa
}
if(a[i2][i3]=='\0') ++b1;
}
}
a[++ca][1]=cif[i1];
}
else{
dca=ca;
for(i2=1;i2<=dca;++i2){//treci prin toate pentru a forma cu i1 cifre
for(i3=1;a[i2][i3]!='\0';++i3){//i3 e pozitia unde o sa pui cifra noua
nrf=0;
for(i4=1;i4<i3;++i4) nrf=nrf*10+(a[i2][i4]-'0');
//for(i4=1;i4<i3;++i4) a[ca][i4]=a[i2][i4];//pui cifrele dinainte
nrf=nrf*10+(cif[i1]-'0');
//a[ca][i3]=cif[i1];//pui cifra care treb adaugata
for(i4=i3;a[i2][i4]!='\0';++i4) nrf=nrf*10+(a[i2][i4]-'0');
//for(i4=i3;a[i2][i4]!='\0';++i4) a[ca][i4+1]=a[i2][i4];//le pui pe cele de dupa
//verifici daca e div cu p
if(nrf%p==0) ++rez;
}
}
}
}
g<<rez+1<<'\n';
g.close();
return 0;
}