git-subtree-dir: users/wpcarro git-subtree-mainline:464bbcb15cgit-subtree-split:24f5a642afChange-Id: I6105b3762b79126b3488359c95978cadb3efa789
		
			
				
	
	
		
			29 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			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))
 |