def calc_anim(ns):
    if ns < 101 or ns > 283:
        return False, ''
    else:
        if ns <= 150.0:
            anim = 'baix'
        elif 150 < ns < 230: 
            anim = 'mig'
        else:
            anim = 'alt'
        return True, anim

def es_capde(dia):
    return dia in ['dv', 'ds', 'dg']

def es_diari(dia):
    return dia in ['dl', 'dm', 'dx', 'dj']

def tria_act(dia, plou, anim):
    if dia == 'dj':
        if anim == 'mig' or anim == 'alt':
            act = 'ball'
        else:
            act = 'copa'
    elif es_capde(dia):
        if not plou and (anim == 'mig' or anim == 'alt'):
            act = 'festa'
        else:
            act = 'casa'
    elif es_diari(dia):
        if (anim == 'alt' or anim == 'mig') and not plou:
            act = 'ball'
        else: # anim baix
            if plou:
                act = 'casa'
            else:
                act = 'teatre'
    else:
        act = 'error'
    return act

def recomana(dia, plou, n_sero, n_mov_acc):
    ok, anim = calc_anim(n_sero)
    if ok:
        act = tria_act(dia, plou, anim)
        if 'act' != 'error':
            if act == 'ball' or act == 'festa':
                n_mov_acc += 1
            return act, n_mov_acc
    else:
        return 'metge', n_mov_acc
