'''
Author: Lluís Vila
ETSEIB - UPC
c 2025-26 
'''

def read_objects(name):
    objD = {}
    
    with open(name) as f:
        f.readline()
        for line in f:
            name, idn, color, price = line.strip().split(',')
            idn = int(idn)
            price = float(price)
            update_object(objD, name, idn, color, price)
            
    for key, val in objD.items():
        color, units, pricesum = val
        price = round(pricesum/units, 2)
        val[2] = price
        
    return objD

def update_object(objD, name, idn, color, price):
    key = (name, idn)
    if key not in objD:
        objD[key] = [color, 1, price]
    else:
        objD[key][1] += 1
        objD[key][2] += price
