def fever_merge(fn1, fn2, fnout):
    lsol = []
    lsol.extend(pat_list(fn1))
    lsol.extend(pat_list(fn2))
    return pat_write(lsol, fnout)

def fever_merge_sort(fn1, fn2, fnout):
    lsol = []
    lsol.extend(pat_list(fn1))
    lsol.extend(pat_list(fn2))
    lsol.sort(key=lambda x: (-x[0], x[1], x[2], x[3]))
    return pat_write(lsol, fnout)

def pat_list(fn):
    linL = []
    with open(fn, 'r') as f:
        for lin in f:
            ll = lin.strip().split(',')
            nom, cog1, cog2 = ll[0].split()
            lt = []
            for t in ll[1:]:
                lt.append(float(t))
            avg = round(sum(lt)/len(lt), 1)
            linL.append([avg, cog1, cog2, nom] + ll[1:])
    return linL

def pat_write(linL, fnout):
    n = 0
    with open(fnout, 'w') as fout:
        for lin in linL:
            lin[0] = str(lin[0])
            fout.write(','.join(lin) + '\n')
            n += 1
    return n
