Pagini recente » Cod sursa (job #3217592) | Clasament moisil2017-9 | Cod sursa (job #371157) | Cod sursa (job #276932) | Cod sursa (job #37999)
Cod sursa(job #37999)
#include<fstream.h>
#include<string.h>
#include<ctype.h>
#include<stdio.h>
ifstream f("next.in");
ofstream g("next.out");
int main()
{long n=-1,i,m=-1,aux,n1,j,rest;
char *p,*d,*v;
p="\0";
do{p[++n]=f.get();p[n+1]='\0';}while(isdigit(p[n]));
p[n]='\0';
for(i=0;i<n/2;i++){aux=p[i];p[i]=p[n-1-i];p[n-1-i]=aux;}
v = new char;
for(i=0;i<n;i++){
aux=p[i];
v[i]=aux;}
d = new char; do{d[++m]=f.get();d[m+1]='\0';}while(!f.eof());
d[m]='\0';n1=n;v[n1]='\0';
for(i=0;i<m/2;i++) {aux=d[i];d[i]=d[m-1-i];d[m-1-i]=aux;}
do{for(i=n1-1;i>=0;i--) if(isdigit(d[i]))
if(long(v[i])>=long(d[i])) v[i]=char(48+long(v[i])-long(d[i]));
else{v[i]=char(48+10+long(v[i])-long(d[i]));
if(v[i+1]!='0') v[i+1]=char(long(v[i+1])-1);
else {j=i+1;do{v[j]='9';j++;}while(v[j]=='0' && j<n1);
if(j<n1) v[j]=char(long(v[j])-1);}
}
i=n1-1;while(v[i]=='0') {n1--;i--;}
}while(m<=n1);
for(i=m-1;i>=0;i--) if(isdigit(v[i]))
if(long(d[i])>=long(v[i])) d[i]=char(48+long(d[i])-long(v[i]));
else{d[i]=char(48+10+long(d[i])-long(v[i]));
if(d[i+1]!='0') d[i+1]=char(long(d[i+1])-1);
else {j=i+1;do{d[j]='9';j++;}while(d[j]=='0' && j<n1);
if(j<n1) d[j]=char(long(d[j])-1);}
}
rest=0;
for(i=n-1;i>=0;i--) if(isdigit(p[i])){
rest=(long(p[i])+long(d[i])-48)/10;
p[i]=char(48+(long(p[i])+long(d[i])-48)%10);j=i;
while(rest!=0){j++;aux=((long(p[j])+rest)-48)/10;
p[j]=char((long(p[i])+rest)%10);rest=aux;}
}
i=n-1;
while(i>=0 && p[i]=='0'){n--;i--;}
for(i=n-1;i>=0;i--)g<<p[i];
g<<endl;
delete v; delete d;
f.close();g.close();return 0;}