Решение задачи №103 «Снова A+B» с ACMP





Решение задачи №103 «Снова A+B» с ACMP

Условие задачи

Требуется сложить два целых числа А и В.

Входные данные
Во входном файле INPUT.TXT записано два неотрицательных целых числа, не превышающих 10100, по одному в каждой строке.

Выходные данные
В единственную строку выходного файла OUTPUT.TXT нужно вывести одно целое число — сумму чисел А и В, без лидирующих нулей.

#include<iostream>
#include<vector>
using namespace std;
typedef vector<int> lll;
lll readlong(){ lll a; string s; cin>>s;
for(int i=s.size()-1; i>=0; --i)
a.push_back(s[i]-'0');
return a;}
void writelong(lll a){
for(int i=a.size()-1; i>=0; --i)cout<<a[i]; }
bool GTlong(lll a,lll b){
if(a.size()>b.size())return true;
if(a.size()<b.size())return false;
for(int i=a.size()-1; i>=0; --i){
if(a[i]>b[i])return true;
if(a[i]<b[i])return false;}
return false;}
lll sumlong(lll a, lll b){
lll c; int i,r=0;
for(i=0;i<a.size()||i<b.size(); ++i){
if(i<a.size())r+=a[i];
if(i<b.size())r+=b[i];
c.push_back(r%10);
r/=10; }
if (r)c.push_back(r);
return c;}
int main(){

lll a,b;
a=readlong (); b=readlong ();
writelong(sumlong(a,b));
return 0;}



Условия задач взяты с сайта acmp.ru