Cod sursa(job #1090492)

Utilizator TibixbAndrei Tiberiu Tibixb Data 22 ianuarie 2014 19:10:10
Problema A+B Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include<cstdio>
#include<fstream>
#include<cstring>
using namespace std;
int lengtha, lengthb, max1, k, transport, i;
char a[300], b[300], aux;
FILE*fin=fopen("adunare.in","r");
ofstream fout("adunare.out");
int main(){
    fscanf(fin,"%s", a+1);
    fscanf(fin,"%s", b+1);
    lengtha=strlen(a+1);
    lengthb=strlen(b+1);
    for(i=1; i<=lengtha/2; i++){
        aux=a[i];
        a[i]=a[lengtha-i+1];
        a[lengtha-i+1]=aux;
    }
    //strrev(b+1);
    for(i=1; i<=lengthb/2; i++){
        aux=b[i];
        b[i]=b[lengthb-i+1];
        b[lengthb-i+1]=aux;
    }
 
    for (i=1;i<=lengtha;i++)
        a[i] -= '0';
    for (i=1;i<=lengthb;i++)
        b[i] -= '0';
     
    a[0]=lengtha;
    b[0]=lengthb;
 
    if(lengtha>lengthb)
        max1=lengtha;
    else
        max1=lengthb;
    k = 1;
    while(k<=max1){
        a[k]=a[k]+b[k]+transport;
        transport=a[k]/10;
        a[k]%=10;
        k++;
    }
 
    if(transport!=0){
        max1++;
        a[max1]=transport;
//      max1++;
    }
    for(i=max1; i>=1;i--)
        fout<<(int)a[i];
return 0;
}