Предизвикателства > Осмодекемврийско пътуване > Решения > Решението на Цветомир Гълъбов

Резултати
1 точки от тестове
1 точки от учител

2 точки общо

5 успешни теста
0 неуспешни теста
Код

 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

Дискусия
История
Това решение има само една версия.