import math


def NumofTneeded( availableT, gap, estimean, goal ):
    """
    Function: Calculate Number of Teachers needed
    
    Input
    availableT(list): 可用教师的产能列表
    gap(float): 由不可用教师产生的产能缺口
    estimean(float): 新教师的预估产能
    goal(float): 目标面上业绩
    
    Output
    totalfee(float): 当前能够承担的总产能
    totalgap(float): 面上产能总缺口
    NTnum(int): 需要招聘教师数
    """

    #  现有可用教师能够承担的总业绩
    totalfee = 0
    for i in range(len(availableT)):
        totalfee += availableT[i][1]  
    #  总的产能缺口
    totalgap = goal - totalfee
    #  需要的新教师数
    NTnum =  math.ceil(totalgap / estimean)
    return totalfee, totalgap, NTnum