26 lines
628 B
Python
Executable File
26 lines
628 B
Python
Executable File
#!/usr/bin/env python
|
|
from common import Folder, parse
|
|
|
|
|
|
def folders_big_enough(folder: Folder, threshold: int) -> list[Folder]:
|
|
if folder.size < threshold:
|
|
return []
|
|
else:
|
|
folder_list = [folder]
|
|
for child in filter(lambda x: type(x) is Folder, folder.children):
|
|
folder_list += folders_big_enough(child, threshold)
|
|
return folder_list
|
|
|
|
|
|
def solve(folder: Folder) -> int:
|
|
threshold = 30000000 - (70000000 - folder.size)
|
|
return min(sorted(folders_big_enough(folder, threshold))).size
|
|
|
|
|
|
def main():
|
|
print(solve(parse("input")))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|