Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using namespace std;
- const int base = pow(2, 32);
- void readL(string s, vector<unsigned int> &a){
- for (int i=(int)s.length(); i>0; i-=9)
- if (i < 9)
- a.push_back (atoi (s.substr (0, i).c_str()));
- else
- a.push_back (atoi (s.substr (i-9, 9).c_str()));
- }
- void printL(vector<unsigned int> &a){
- if (a.empty()){
- cout << 0;
- }else{
- cout << a.back();
- }
- for (int i=(int)a.size()-2; i>=0; --i)
- cout << (a[i]);
- }
- void summL(vector<unsigned int> &a, vector<unsigned int> &b){
- int carry = 0;
- for (size_t i=0; i<max(a.size(),b.size()) || carry; ++i) {
- if (i == a.size())
- a.push_back (0);
- a[i] += carry + (i < b.size() ? b[i] : 0);
- carry = a[i] >= base;
- if (carry) a[i] -= base;
- }
- printL(a);
- }
- int main(){
- vector<unsigned int> a, b;
- string str1, str2;
- cin >> str1;
- cin >> str2;
- readL(str1, a);
- readL(str2, b);
- summL(a, b);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement