Cod sursa(job #1511180)

Utilizator KOzarmOvidiu Badea KOzarm Data 26 octombrie 2015 09:59:52
Problema A+B Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <string.h>
using namespace std;
ifstream fin("adunare.in");
ofstream fout("adunare.out");
char x[1000];
int a[3][1005],n,i,s[2000];
void citeste(int a[1000])
{
    fin.getline(x,' ');
    int k=0;
    int n=strlen(x);
    a[0]=max(n,a[0]);
    for(int i=n-1;i>=0;i--)
        a[++k]=x[i]-'0';
}
void transport(int s[2000], int i)
{
    while(s[i]>9)
    {
        s[i+1]=s[i+1]+s[i]/10;
        s[i]%=10;
        if(i+1>s[0])
            s[0]++;
        i++;
    }
}
void aduna(int s[2000],int a[1000])
{
    s[0]=max(s[0],a[0]);
    for(int i=1;i<=a[0];i++)
    {
        s[i]+=a[i];
        if(s[i]>9)
            transport(s,i);
    }
}
int main()
{
    for(i=1;i<=2;i++)
    {
        citeste(a[i]);
        memset(x,0,strlen(x));
        aduna(s,a[i]);
    }
    for(i=s[0];i>0;i--)
        fout<<s[i];
    return 0;
}