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))
 |