import time
def mult(a: str, b: str) -> int:

    output = 0

    for i in range(len(a)):
        row = 0

        for j in range(len(b)):
            row += int(a[-1 - i]) * int(b[-1 - j]) * 10 ** (i + j)
            
        output += row

    return output

# Test to confirm our algorithm at least appears to work
a = "123456789"
b = "987654321"
print(int(a) * int(b))
print(mult(a, b))

# Let's see how long it takes on average to use our mult algorithm!
for i in range(1000, 20000, 1000):
    avg = 0
    a = "9" * int(i / 100)
    trials = 100
    for _ in range(trials):
        t1 = time.time()
        mult(a, a)
        t2 = time.time()
        avg += t2 - t1
    print(avg / trials)