Cod sursa(job #1011377)

Utilizator TibixbAndrei Tiberiu Tibixb Data 16 octombrie 2013 19:43:03
Problema A+B Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 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("adunm.in","r");
ofstream fout("adunm.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;
}