tvl-depot/users/wpcarro/scratch/facebook/inflight-entertainment.py
Vincent Ambo 019f8fd211 subtree(users/wpcarro): docking briefcase at '24f5a642'
git-subtree-dir: users/wpcarro
git-subtree-mainline: 464bbcb15c
git-subtree-split: 24f5a642af
Change-Id: I6105b3762b79126b3488359c95978cadb3efa789
2021-12-14 02:15:47 +03:00

29 lines
1.1 KiB
Python

from random import choice
from utils import init_table
def get(movie, seeking):
return any([movie in xs for xs in seeking.values()])
def set_complement(movie, seeking):
for duration, xs in seeking.items():
seeking[duration].add(duration - movie)
def choose_movies(tolerance, duration, movies):
seeking = {duration + i: set() for i in range(-1 * tolerance, tolerance + 1)}
for movie in movies:
if get(movie, seeking):
return movie, duration - movie
else:
set_complement(movie, seeking)
return None
tolerance = 20
duration = choice([1, 2, 3]) * choice([1, 2]) * choice([15, 30, 45])
movies = [choice([1, 2, 3]) * choice([15, 30, 45]) for _ in range(10)]
print("Seeking two movies for a duration of [{}, {}] minutes".format(duration - tolerance, duration + tolerance))
print(movies)
result = choose_movies(tolerance, duration, movies)
if result:
print("{} + {} = {}".format(result[0], result[1], duration))
else:
print(":( We're sad because we couldn't find two movies for a {} minute flight".format(duration))