Cod sursa(job #396136)

Utilizator laurionLaurentiu Ion laurion Data 14 februarie 2010 16:19:46
Problema A+B Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<iostream>
#include<fstream>
#include<iomanip>

using namespace std;

int main()
{
	ifstream fin("adunare.in");
	ofstream fout("adunare.out");
	
	int n,m,i,t,c,p,x[100],y[100],z[100],k=1;
	char a,b;
	n=1;
	fin>>a;
	while(k)
	{
		a=a-'0';
		x[n]=a;
		fin>>resetiosflags(ios::skipws)>>a;
		if(a=='\n') k=0;
		n++;
	}
	n--;
	for(i=1;i<=n/2;i++) 
	{
		k=x[i];
		x[i]=x[n-i+1];
		x[n-i+1]=k;
	}
	m=1;
	fin>>b;
	while(!fin.eof())
	{
		b=b-'0';
		y[m]=b;
		fin>>b;
		m++;
	}
	m--;
	for(i=1;i<=m/2;i++) 
	{
		k=y[i];
		y[i]=y[m-i+1];
		y[m-i+1]=k;
	}
	
	t=0;
	i=1;
	while(i<=n && i<=m)
	{
		c=x[i]+y[i]+t;
		z[i]=c%10;
		t=c/10;
		i++;
	}
	while(i<=n)
	{
		c=x[i]+t;
		z[i]=c%10;
		t=c/10;
		i++;
	}
	while(i<=m)
	{
		c=y[i]+t;
		z[i]=c%10;
		t=c/10;
		i++;
	}
	if(t!=0)
	{
		z[i]=t;
		p=i;
	}
	else p=i-1;
	for(i=p;i>=1;i--) fout<<z[i];
	
	fin.close();
	fout.close();
	return 0;
}