subtree(users/wpcarro): docking briefcase at '24f5a642'
git-subtree-dir: users/wpcarro git-subtree-mainline:464bbcb15cgit-subtree-split:24f5a642afChange-Id: I6105b3762b79126b3488359c95978cadb3efa789
This commit is contained in:
commit
019f8fd211
766 changed files with 175420 additions and 0 deletions
29
users/wpcarro/scratch/facebook/inflight-entertainment.py
Normal file
29
users/wpcarro/scratch/facebook/inflight-entertainment.py
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
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))
|
||||
Loading…
Add table
Add a link
Reference in a new issue