1from itertools import permutations
2
3
4def generate_pattern_list(num_cars):
5 pattern_list = []
6 for i in range(num_cars):
7 pattern_list.extend([i] * 4)
8 return pattern_list
9
10
11def organize(cars, students):
12 cars_pattern = generate_pattern_list(len(cars))
13
14 checked_permutation = set()
15 # put students in order in the car determined by the permutation
16 for permutation in permutations(cars_pattern, len(students)):
17 if permutation not in checked_permutation:
18 checked_permutation.add(permutation)
19 for i, car_id in enumerate(permutation):
20 current_student = students[i]
21 current_car = cars[car_id]
22 current_car.add_student(current_student)
23
24 if all(student.is_comfy() for student in students):
25 return True
26
27 # remove students from cars
28 for i, car_id in enumerate(permutation):
29 current_student = students[i]
30 current_car = cars[car_id]
31 current_car.remove_student(current_student)
32
33 return False
.....
----------------------------------------------------------------------
Ran 5 tests in 0.001s
OK