コード例 #1
0
ファイル: parser.py プロジェクト: joancasanova/hashcode2020
def read_input(fname):
    with open(f"data/{fname}") as f:
        lines = f.readlines()
    metadata = lines[0].split(" ")
    B = int(metadata[0])
    L = int(metadata[1])
    D = int(metadata[2])
    books_score = [int(i) for i in lines[1].strip().split(" ")]
    all_books = {i: books_score[i] for i in range(len(books_score))}
    all_books_list = []
    problem = Problem(n_books=B, n_libraries=L, n_days=D, scores=books_score)
    for i, group in enumerate(grouper(2, lines[2:])):
        l1, l2 = group[0], group[1]
        if l2 is None:
            break
        library = Library(i, *[int(i) for i in l1.strip().split(" ")])
        # import ipdb
        #
        # ipdb.set_trace()
        books = {(int(i)): all_books[int(i)] for i in l2.strip().split(" ")}
        all_books_list.append(books)
        library.add_books(books)
        problem.add_library(library)
    return problem, all_books, all_books_list