Pagini recente » Cod sursa (job #277087) | Cod sursa (job #1991093) | Cod sursa (job #1962509) | Cod sursa (job #2267063) | Cod sursa (job #296537)
Cod sursa(job #296537)
#include <stdio.h>
#define N 1000005
#define D 17
int a[N],b[D],c[N];
long long d,r,t,salv;
void citire()
{
char x;
while (scanf("%c",&x) && (int)x>=48)
a[++r]=x-'0';
scanf("%lld",&d);
salv=d;
while (d)
{
b[++t]=d%10;
d/=10;
}
d=salv;
}
void inversare()
{
long long i,p;
for (i=r; i>=r/2+1; i--)
{
p=a[i];
a[i]=a[r-i+1];
a[r-i+1]=p;
}
}
void adunare()
{
long long i,min,max;
int tr=0;
if (r<t)
{
min=r;
max=t;
}
else
{
min=t;
max=r;
}
for (i=1; i<=min || tr; i++)
{
if (i<=min)
{
c[i]=(a[i]+b[i]+tr)%10;
tr=(a[i]+b[i]+tr)/10;
}
if (min==r && i>min)
{
c[i]=(b[i]+tr)%10;
tr=(b[i]+tr)/10;
}
if (min==t && i>min)
{
c[i]=(a[i]+tr)%10;
tr=(a[i]+tr)/10;
}
if (i==max && tr)
{
c[++i]=1;
max++;
}
}
for (i=max; i>=1; i--)
printf("%d",c[i]);
}
int main()
{
freopen("next.in","r",stdin);
freopen("next.out","w",stdout);
citire();
inversare();
adunare();
return 0;
}