-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
41 lines (32 loc) · 1.23 KB
/
Copy pathmain.py
File metadata and controls
41 lines (32 loc) · 1.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
from models import *
from write_file import *
LIBRARY_INPUT = ["a_example.txt", "b_read_on.txt", "c_incunabula.txt", "d_tough_choices.txt", "e_so_many_books.txt", "f_libraries_of_the_world.txt"]
#LIBRARY_INPUT = ["a_example.txt"]
for l in LIBRARY_INPUT:
print(f"Calculating file: {l}")
data = Data(l)
# print(data.books)
# for lib in data.libraries:
# for i in range(len(lib.books)):
# print(f"Book {lib.books[i]} with score {data.books[lib.books[i]]}")
# print("\n")
#for lib in data.libraries:
# print(lib.id)
data.libraries.sort(key = lambda x : x.weight, reverse=True)
final_libraries = []
static_libraries = data.libraries
for i in range(len(data.libraries)):
lib = data.libraries[i]
if not lib.sorted:
lib.weight = data.calc_weight(lib, data.books)
data.libraries.sort(key = lambda x : x.weight, reverse=True)
lib.books.sort(key = lambda x : int(data.books[x]), reverse=True)
data.number_of_days -= lib.signup
if data.number_of_days >= 0:
final_libraries.append(lib)
lib.sorted = True
for book in lib.books:
data.books[book] = 0
answer_file = l.split('.')[0] + "_ans3.txt"
write_file(final_libraries, answer_file)
print("Complete")