Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdio>
- #include <algorithm>
- #include <string>
- #include <cmath>
- #include <vector>
- #include <stack>
- #include <cstdlib>
- #include <queue>
- #include <map>
- #include <math.h>
- #include <list>
- #include <set>
- using namespace std;
- struct numl
- {
- vector <int> num;
- numl() : num() {};
- numl(vector <int> _num) : num(_num) {};
- numl operator + (numl v)
- {
- numl sum;
- int counter = 0;
- if (num.size() >= v.num.size())
- {
- int n = num.size()-1;
- for (int i = v.num.size()-1; i >= 0; i--)
- {
- if (num[n] + v.num[i] + counter > 9)
- {
- sum.num.push_back((num[n] + v.num[i] + counter)%10);
- counter = (num[n] + v.num[i] + counter)/10;
- }
- else
- {
- sum.num.push_back(num[n] + v.num[i] + counter);
- counter = 0;
- }
- n--;
- }
- while (n >= 0)
- {
- if (num[n] + counter > 9)
- {
- sum.num.push_back((num[n] + counter) % 10);
- counter = (num[n] + counter)/10;
- }
- else
- {
- sum.num.push_back(num[n] + counter);
- counter = 0;
- }
- n--;
- }
- }
- else
- {
- int n = v.num.size()-1;
- for (int i = num.size()-1; i >= 0; i--)
- {
- if (num[i] + v.num[n] + counter > 9)
- {
- sum.num.push_back((num[i] + v.num[n] + counter)%10);
- counter = (num[i] + v.num[n] + counter)/10;
- }
- else
- {
- sum.num.push_back(num[i] + v.num[n] + counter);
- counter = 0;
- }
- n--;
- }
- while (n >= 0)
- {
- if (v.num[n] + counter > 9)
- {
- sum.num.push_back((v.num[n] + counter) % 10);
- counter = (v.num[n] + counter)/10;
- }
- else
- {
- sum.num.push_back(v.num[n] + counter);
- counter = 0;
- }
- n--;
- }
- }
- if (counter > 0)
- sum.num.push_back(counter);
- return sum;
- }
- } num1, num2, ans;
- int n;
- int main()
- {
- #ifndef ONLINE_JUDGE
- freopen("input.txt", "r", stdin);
- freopen("output.txt", "w", stdout);
- #endif
- scanf("%d", &n);
- for (int i = 0; i < n; i++)
- {
- int k, p;
- scanf("%d%d", &k, &p);
- if (k != 0 || !num1.num.empty())
- num1.num.push_back(k);
- if (p != 0 || !num2.num.empty())
- num2.num.push_back(p);
- }
- ans = num1 + num2;
- reverse(ans.num.begin(), ans.num.end());
- for (int i = 0; i < ans.num.size(); i++)
- printf("%d", ans.num[i]);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement