Cod sursa(job #1008751)

Utilizator Athena99Anghel Anca Athena99 Data 11 octombrie 2013 19:31:06
Problema A+B Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>
#include <vector>
#include <cstring>

using namespace std;

ifstream fin("adunare.in");
ofstream fout("adunare.out");

const int cmax=10;

vector <int> a;
vector <int> b;

void hh_add( vector <int> &x, vector <int> &y )
{
    int rc= 0, rp= 0;
    for ( int i= max(x.size(), y.size())-1; i>=0; --i) {
        rc= (x[i]+y[i])/10;
        x[i]= (x[i]+y[i]+rp)%10;
        rp= rc;
    }
}

int main(  )
{
    char c[cmax];
    fin>>c;
    a.push_back(0);
    for ( int i= 0, n= strlen(c); i<n; ++i ) {
        a.push_back(c[i]-'0');
    }

    fin>>c;
    b.push_back(0);
    for ( int i= 0, n= strlen(c); i<n; ++i ) {
        b.push_back(c[i]-'0');
    }

    hh_add(a, b);
    
    if ( a[0] ) {
        fout<<a[0];
    }

    for ( int i= 1; i<max(a.size(), b.size()); ++i ) {
        fout<<a[i];
    }

    fout<<"\n";

    return 0;
}