Submission

Status:
PPPPPPPPPP

Score: 100

User: Dormon

Problemset: I.Quick Math

Language: cpp

Time: 0.004 second

Submitted On: 2024-12-03 10:42:05

#include <iostream>
#include <cstring>

using namespace std;

const int N = 1003;

void solve(const string a, const string b) {
    int n = a.size();
    int m = b.size();
    int ans[N<<1] = {0};

    for (int i = n-1;i >= 0;i--) {
        for (int j = m-1;j >= 0;j--) {
            int mul = (a[i] - '0') * (b[j] - '0');
            int p1 = i + j, p2 = i + j + 1;
            int sum = mul + ans[p2];

            ans[p1] += sum / 10;
            ans[p2] = sum % 10;
        }
    }
    int i = 0, k = 0;
    while (i < n+m && ans[i] == 0) i++;
    string res = "";
    while (i < n+m) res += (ans[i++] + '0');

    if (res.empty()) res = "0";
    cout << res;
}

int main() {
    string a, b, ans; cin >> a >> b;

    solve(a, b);

    return 0;
}