• + 0 comments
    def main(n: int, name_and_marks: str, query_name: str) -> float:
        if not isinstance(n, int) or n <= 0:
            raise ValueError("n must be a positive integer")
        if not isinstance(name_and_marks, str):
            raise TypeError("name_and_marks must be in str format")
        if not isinstance(query_name, str):
            raise ValueError("query_name must be a string")
    
        lines = name_and_marks.strip().splitlines()
        name_and_marks_dict = {}
    
        for line in lines:
            parts = line.split()
            name = parts[0]
            scores = list(map(float, parts[1:]))
            name_and_marks_dict[name] = scores
    
        if query_name in name_and_marks_dict:
            scores = name_and_marks_dict[query_name]
            return round(sum(scores) / len(scores), 2)
        else:
            raise ValueError(f"{query_name} not found in the records.")
    
        
    if __name__ == '__main__':
        n = int(input())
        name_and_marks = "\n".join(input() for _ in range(n))
        query = input()
        result = main(n, name_and_marks, query)
        print(f"{result:.2f}")