Pagini recente » Cod sursa (job #1807595) | Cod sursa (job #2070444) | Cod sursa (job #566072) | Cod sursa (job #1510479) | Cod sursa (job #1925191)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("adunare.in");
ofstream fout("adunare.out");
string buffer;
string::iterator it;
void h_read (vector <int> &x) {
while (*it<'0' || *it>'9') {
it++;
}
x.resize(0);
while (*it>='0' && *it<='9') {
x.push_back(*it-'0');
it++;
}
for (int i=0; 2*i<int(x.size()); i++) {
int aux=x[i];
x[i]=x[int(x.size())-i-1];
x[int(x.size())-i-1]=aux;
}
}
void h_write (vector <int> &x) {
for (int i=int(x.size())-1; i>=0; i--) {
fout<<x[i];
}
}
/*vector <int> hh_add(vector <int> &x, vector <int> &y) {
vector <int> sol;
sol.resize(max(x.size(), y.size()), 0);
int aux=0;
for (int i=0; i<int(x.size()) || i<int(y.size()); i++) {
if (i<int(x.size())) {
sol[i]+=x[i];
}
if (i<int(y.size())) {
sol[i]+=y[i];
}
sol[i]+=aux;
aux=sol[i]/10;
sol[i]%=10;
}
if (aux!=0) {
sol.push_back(aux);
}
return sol;
}
*/
vector <int> hh_add(vector <int> &x, vector <int> &y) {
vector <int> sol;
if (x.size()<y.size()) {
sol.resize(y.size());
int aux=0;
for (int i=0; i<int(x.size()); i++) {
sol[i]=x[i]+y[i]+aux;
aux=sol[i]/10;
sol[i]%=10;
}
for (int i=int(x.size()); i<int(y.size()); i++) {
sol[i]=y[i]+aux;
aux=sol[i]/10;
sol[i]%=10;
}
if (aux!=0) {
sol.push_back(aux);
}
} else {
sol.resize(x.size());
int aux=0;
for (int i=0; i<int(y.size()); i++) {
sol[i]=y[i]+x[i]+aux;
aux=sol[i]/10;
sol[i]%=10;
}
for (int i=int(y.size()); i<int(x.size()); i++) {
sol[i]=x[i]+aux;
aux=sol[i]/10;
sol[i]%=10;
}
if (aux!=0) {
sol.push_back(aux);
}
}
return sol;
}
int main () {
getline(fin, buffer, char(0));
it=buffer.begin();
vector <int> x, y, z;
h_read(x);
h_read(y);
z=hh_add(x, y);
h_write(z);
fout<<"\n";
return 0;
}