Advertisement
Guest User

Untitled

a guest
Feb 20th, 2020
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.79 KB | None | 0 0
  1. import seaborn as sns
  2. import pandas as pd
  3. import matplotlib.pyplot as plt
  4. import numpy as np
  5. from scipy.optimize import linear_sum_assignment
  6.  
  7. a = input().split(" ")
  8. n_books = int(a[0])
  9. n_libs = int(a[1])
  10. n_days = int(a[2])
  11. books = list(map(int, input().split(" ")))
  12. books_used = [ False ] * n_books
  13. lib_info = []
  14. lib_contents = []
  15. for i in range(n_libs):
  16. lib_info.append(list(map(int, input().split(" "))))
  17. lib_contents.append(list(map(int, input().split(" "))))
  18.  
  19. lib_signup = [ False ] * n_libs
  20.  
  21. lib_values = []
  22. for lib in lib_contents:
  23. values = 0
  24. for book in lib:
  25. values += books[book]
  26. lib_values.append(values)
  27.  
  28. def find_book(lib):
  29. global lib_info, n_books, lib_contents, books_used
  30. for i in range(lib_info[lib][2]):
  31. for book_id in range(n_books):
  32. if book_id in lib_contents[lib] and not books_used[book_id]:
  33. return book_id
  34. return -1
  35.  
  36. signed_up_libs = []
  37. books_per_lib = [[] for i in range(n_libs)]
  38. signup_left = 0
  39. signup_lib = 0
  40. for day in range(n_days):
  41. if signup_left == 0:
  42. # Find not yet signed up library
  43. for i in range(n_libs):
  44. if not lib_signup[i]:
  45. signup_left = lib_info[i][1]
  46. signup_id = i
  47. break
  48. else:
  49. if signup_left == 1:
  50. lib_signup[signup_lib] = True
  51. signed_up_libs.append(signup_lib)
  52. signup_left -= 1
  53.  
  54. for lib in range(n_libs):
  55. print("Lib: " + str(lib))
  56. if lib_signup[lib]:
  57. book_id = find_book(lib)
  58. if book_id >= 0:
  59. print("book_id: " + str(book_id))
  60. books_per_lib[lib].append(book_id)
  61. books_used[book_id] = True
  62.  
  63. print(signed_up_libs)
  64. print(books_per_lib)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement