def t01_calc_population(base_population) -> int:
    """
    Gets a starting population of fish as input and determines their number after an 80 days period.
    Each element in the starting population represents a fish and each element's value represents the
    reproduction timer.

    :param base_population: Array with information about the starting population.
    :return: The number of fish in the population
    """
    working_population = list(base_population)
    cycle = 80

    # Iterate over the 80-day cycle
    while cycle > 0:
        # Check each fish in the population
        for fish in range(len(working_population)):
            # Decrease the counter per fish
            if working_population[fish] > 0:
                working_population[fish] -= 1
            else:
                # Produce a new fish and reset the counter
                working_population[fish] = 6
                working_population.append(8)
        cycle -= 1

    return len(working_population)