Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import seaborn as sns
- import pandas as pd
- import matplotlib.pyplot as plt
- import numpy as np
- from scipy.optimize import linear_sum_assignment
- a = input().split(" ")
- n_books = int(a[0])
- n_libs = int(a[1])
- n_days = int(a[2])
- books = list(map(int, input().split(" ")))
- books_used = [ False ] * n_books
- lib_info = []
- lib_contents = []
- for i in range(n_libs):
- lib_info.append(list(map(int, input().split(" "))))
- lib_contents.append(list(map(int, input().split(" "))))
- lib_signup = [ False ] * n_libs
- lib_values = []
- for lib in lib_contents:
- values = 0
- for book in lib:
- values += books[book]
- lib_values.append(values)
- def find_book(lib):
- global lib_info, n_books, lib_contents, books_used
- for i in range(lib_info[lib][2]):
- for book_id in range(n_books):
- if book_id in lib_contents[lib] and not books_used[book_id]:
- return book_id
- return -1
- signed_up_libs = []
- books_per_lib = [[] for i in range(n_libs)]
- signup_left = 0
- signup_lib = 0
- for day in range(n_days):
- if signup_left == 0:
- # Find not yet signed up library
- for i in range(n_libs):
- if not lib_signup[i]:
- signup_left = lib_info[i][1]
- signup_id = i
- break
- else:
- if signup_left == 1:
- lib_signup[signup_lib] = True
- signed_up_libs.append(signup_lib)
- signup_left -= 1
- for lib in range(n_libs):
- print("Lib: " + str(lib))
- if lib_signup[lib]:
- book_id = find_book(lib)
- if book_id >= 0:
- print("book_id: " + str(book_id))
- books_per_lib[lib].append(book_id)
- books_used[book_id] = True
- print(signed_up_libs)
- print(books_per_lib)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement