You are the best freelancer in the city. Everybody knows you, but what they don't know, is that you are actually offloading your work to other freelancers and and you rarely need to do any work. You're living the life!

To make this process easier you need to write a method called workNeeded to figure out how much time you need to contribute to a project. 

Giving the amount of time in `minutes` needed to complete the project and an array of pair values representing other freelancers' time in `[Hours, Minutes]` format ie. `[[2, 33], [3, 44]]` calculate how much time **you** will need to contribute to the project (if at all) and return a string depending on the case.


* If we need to contribute time to the project then return `"I need to work x hour(s) and y minute(s)"`
* If we don't have to contribute any time to the project then return `"Easy Money!"`

Difficulty: introductory

Starter code:

def work_needed(projectMinutes, freeLancers):
	

Solutions:
def work_needed(project_minutes, freelancers):
    available_minutes = sum(hours * 60 + minutes for hours, minutes in freelancers)
    workload_minutes = project_minutes - available_minutes
    if workload_minutes <= 0:
        return 'Easy Money!'
    else:
        hours, minutes = divmod(workload_minutes, 60)
        return 'I need to work {} hour(s) and {} minute(s)'.format(hours, minutes)

def work_needed(projectMinutes, freeLancers):
    time = projectMinutes - sum(fl[0]*60+fl[1] for fl in freeLancers)
    if time <= 0: return "Easy Money!"
    else: return "I need to work {} hour(s) and {} minute(s)".format(time//60, time%60)

def work_needed(projMin, others):
    h, m   = map(sum, zip(*others))
    needed = projMin - sum(t*c for t,c in zip((h,m),(60,1)) )
    return "Easy Money!" if needed <= 0 else f"I need to work {needed//60} hour(s) and {needed%60} minute(s)"

def work_needed(projectMinutes, freeLancers):
    x = projectMinutes 
    for flance in freeLancers:
        x -= (flance[0]*60 + flance[1])
    if(x > 0):
        return("I need to work " + str(int (x / 60)) + " hour(s) and " + str(x%60) + " minute(s)")
    return("Easy Money!")

def work_needed(project, freelancers):
    to_work = project - sum(h*60 + m for h, m in freelancers)
    return "I need to work {} hour(s) and {} minute(s)".format(*divmod(to_work, 60)) if to_work > 0 else "Easy Money!"

def work_needed(projectMinutes, freeLancers):
    s = projectMinutes - sum(h * 60 + m for h, m in freeLancers)
    return 'Easy Money!' if s <= 0 else 'I need to work {} hour(s) and {} minute(s)'.format(*divmod(s, 60))

def work_needed(pm, fls):
    pm -= sum(60 * h + m for h, m in fls)
    return f'I need to work {pm // 60} hour(s) and {pm % 60} minute(s)' if pm > 0 else "Easy Money!"

def work_needed(mins, free):
    w = mins - sum(60 * h + m for h, m in free)        
    return f'I need to work {w//60} hour(s) and {w%60} minute(s)' if w > 0 else 'Easy Money!'        

def work_needed(projectMinutes, freeLancers):
    req = projectMinutes - sum( 60*f[0] + f[1] for f in freeLancers )
    if req <= 0: return 'Easy Money!'
    return f"I need to work {req//60} hour(s) and {req%60} minute(s)"

def work_needed(projectMinutes, freeLancers):
    diff = projectMinutes - sum(h*60 + m for h, m in freeLancers)
    return "Easy Money!" if diff <= 0 else "I need to work {} hour(s) and {} minute(s)".format(diff//60, diff%60)