█████████ ████ ███░░░░░███ ░░███ ███ ░░░ ██████ ███████ ██████ ██████ ░███ ███░░███ ███░░███ ███░░███ ███░░███ ░███ ░███ ░███░███ ░███ ░███████ ░███ ░███ ░░███ ███░███ ░███░███ ░███ ░███░░░ ░███ ░███ ░░█████████ ░░██████ ░░████████░░██████ ░░██████ ░░░░░░░░░ ░░░░░░ ░░░░░░░░ ░░░░░░ ░░░░░░

Envío 3219

Problema 0x32 - Sumar dos números muy grandes

  • Autor: pipelin1010
  • Fecha: 2021-03-04 07:12:40 UTC (Hace alrededor de 3 años)
Caso # Resultado Tiempo Memoria
#1
Correcto
0.004 s 2 KBi
#2
Correcto
0.005 s 1 KBi
#3
Correcto
0.006 s 2 KBi
#4
Correcto
0.007 s 2 KBi
#5
Correcto
0.005 s 1 KBi
#6
Correcto
0.006 s 1 KBi
#7
Correcto
0.005 s 1 KBi
#8
Correcto
0.005 s 2 KBi
#9
Correcto
0.007 s 2 KBi
#10
Correcto
0.004 s 2 KBi
#11
Correcto
0.005 s 2 KBi
#12
Correcto
0.005 s 1 KBi
#13
Correcto
0.005 s 1 KBi
#14
Correcto
0.005 s 1 KBi
#15
Correcto
0.008 s 1 KBi
#16
Correcto
0.005 s 2 KBi
#17
Correcto
0.004 s 1 KBi
#18
Correcto
0.005 s 2 KBi
#19
Correcto
0.005 s 2 KBi
#20
Correcto
0.005 s 2 KBi
#21
Correcto
0.004 s 1 KBi
#22
Correcto
0.005 s 1 KBi
#23
Correcto
0.004 s 1 KBi
#24
Correcto
0.004 s 2 KBi
#25
Correcto
0.004 s 2 KBi
#26
Correcto
0.004 s 2 KBi
#27
Correcto
0.004 s 2 KBi
#28
Correcto
0.006 s 1 KBi
#29
Correcto
0.323 s 1 KBi
#30
Correcto
0.127 s 2 KBi
#31
Correcto
0.066 s 1 KBi
#32
Correcto
0.197 s 2 KBi
#33
Correcto
0.128 s 2 KBi
#34
Correcto
0.007 s 1 KBi
#35
Correcto
0.007 s 2 KBi
#36
Correcto
0.009 s 2 KBi
#37
Correcto
0.312 s 2 KBi
#38
Correcto
0.331 s 2 KBi
Puntos totales: 100 / 100

Código

//
#include <bits/stdc++.h>
using namespace std;
#define INF 1000000000
#define MOD 1000000007
#define PI 3.14159265
#define EPS 1e-9
#define Pi acos(-1.0)
typedef pair<int, int> ii;
typedef long long ll;
typedef vector<ll> vll;
typedef pair<ll,ll> pll;
#define forr(i,a,b) for(int i=(a); i<(b); i++)
#define clean(arr,val) memset(arr,val,sizeof(arr))
#define forn(i,n) forr(i,0,n)
#define PB push_back
typedef vector<int> vi;
typedef vector<ii> vii;
typedef vector<pll> vpll;

/*CODE START HERE*/

string number, k;
int temp, carry;

int main(){
    ios::sync_with_stdio(0);
    cin >> number;
    cin >> k;
    // cout << "BACK\n";
    // cout << number.back() << "\n";
    
    if(k.size() > number.size()) swap(number,k);

    while(k.size() < number.size()){
        k.push_back('0');
        for(int i = (int)k.size()-1; i > 0; i--){
            k[i] = k[i-1];
        }
        k[0] = '0';
    }

    carry = 0;
    for(int i = (int)number.size()-1; i >= 0; i--){
        temp = (number[i]-'0')+(k[i]-'0')+carry;
        // cout << "TEMP " << temp << "\n";
        if(temp > 9){
            number[i] = (temp%10)+'0';
            carry = 1;
            if(i == 0){
                number.push_back('0');
                for(int i = (int)number.size()-1; i > 0; i--){
                    number[i] = number[i-1];
                }
                number[0] = '1';
            }
            continue;
        }
        number[i] = temp+'0';
        carry = 0;
    }
    cout << number << "\n";
    return 0;
}