def arithmetic_arranger(problems, final_answer=True):
    if len(problems) > 5:
        return "Error: Too many problems"

    first_number = []
    operator = []
    second_number = []

    for problem in problems:
        problem = problem.split()

        first_number.append(problem[0])
        operator.append(problem[1])
        second_number.append(problem[2])

    if "*" in operator or "/" in operator:
        return "Error: Operator must be '+' or '-'."

    if not all(
        x.isdigit() and y.isdigit() for x, y in zip(first_number, second_number)
    ):
        return "Error: Numbers must only contain digits."

    if not all(
        map(lambda x, y: len(x) < 5 and len(y) < 5, first_number, second_number)
    ):
        return "Error: Numbers cannot be more than four digits."

    formatted_problems = []

    for x, y, z in zip(first_number, operator, second_number):
        length = max(len(x), len(z)) + 2
        first_line = x.rjust(length)
        second_line = y + z.rjust(length - 1)
        dashes = "-" * length

        if y == "+":
            answer = str(int(x) + int(z))
        elif y == "-":
            answer = str(int(x) - int(z))

        answer_line = answer.rjust(length)

        if final_answer:
            formatted_problems.append([first_line, second_line, dashes, answer_line])
        else:
            formatted_problems.append([first_line, second_line, dashes])
    print(formatted_problems)
    first_line = "    ".join([problem[0] for problem in formatted_problems])
    second_line = "    ".join([problem[1] for problem in formatted_problems])
    dashes = "    ".join([problem[2] for problem in formatted_problems])

    if final_answer:
        answer_line = "    ".join([problem[3] for problem in formatted_problems])
        arranged_problems = (
            first_line + "\n" + second_line + "\n" + dashes + "\n" + answer_line
        )
    else:
        arranged_problems = first_line + "\n" + second_line + "\n" + dashes

    return arranged_problems


print(arithmetic_arranger(["3111 - 6398", "3801 - 2", "45 + 43", "123 + 49"]))