Pagini recente » algoritmiada-2019/runda-maraton/solutii/pisica | Cod sursa (job #3150652) | Cod sursa (job #12934) | Cod sursa (job #2056714) | Cod sursa (job #38468)
Cod sursa(job #38468)
#include<stdio.h>
#include<string.h>
#include<ctype.h>
char ct,ns[1000],ds[1000],nb[1000],db[1000],lnb;
long long int cont,i,ln,ld,p;
int main()
{ FILE *f,*g;
f=fopen("next.in","r");
g=fopen("next.out","w");
fgets(ns,1000000,f);
fgets(ds,17,f);
strcpy(nb,ns);ln=strlen(ns);lnb=ln;
ld=strlen(ds);
while(strlen(ns)>strlen(ds))
{ if(strncmp(ns,ds,ld)<0) { ns[1]=ns[1]+10*(ns[0]-'0');strcpy(ns,ns+1);}
while(strlen(ns)>=strlen(ds)&&strncmp(ns,ds,ld)>=0)
for(i=strlen(ds)-2;i>=0;i--)
{if(ns[i]<ds[i]){ns[i]+=10;ns[i-1]-=1;}
ns[i]=ns[i]-ds[i]+'0';}
}
while(ns[0]=='0')strcpy(ns,ns+1);
ln=strlen(ns);
if(ln)
{ for(p=0;p<ld-1;p++)
{nb[lnb-2-p]+=ds[ld-2-p]-'0';}
for(p=0;p<ln-1;p++)
{nb[lnb-2-p]-=ns[ln-2-p]-'0';}
}
for(p=lnb-2;p>0;p--)
{ if(nb[p]<'0'){nb[p]+=10;nb[p-1]--;}
if(nb[p]>'9'){nb[p]-=10;nb[p-1]++;}
}
fputs(nb,g);
fcloseall();
return 0;
}