Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

ИНФОРМАТИКА ПИТОН НА ПОМОШЬ!!!!!! прошу, проверьте, и скиньте скрин с пробелами, для понимания

dvd5o3 vv Ученик (85), закрыт 7 месяцев назад
прошу, проверьте, и скиньте скрин с пробелами, для понимания

Исполнитель Говорун действует в трехмерном пространстве с декартовой системой координат. Исполнитель Говорун умеет исполнять только одну команду Перелететь на (a,b,c) (где a, b, c - целые числа), перемещающую исполнителя Говоруна из точки с координатами (x, y, z) в точку с координатами (x+a, y+b, z+c). Если числа a, b, c положительные, то значения соответствующей координаты увеличивается, если отрицательные - уменьшается. Исполнитель Говорун был запущен с корабля "Синяя чайка" (координаты корабля - целые числа) по определенному маршруту с сигналом SOS. Исполнитель не может удаляться от корабля "Синяя чайка" на расстояние более, чем R.

Определите сколько различных точек с целочисленными координатами принадлежит траектории Говоруна до завершения его миссии, считая начальную и конечную точки. Миссия исполнителя завершается, если:

- выполнены все команды;

- исполнитель нашел корабль "Пегас" (то есть точка с координатами корабля принадлежит траектории исполнителя);

- исполнитель удалился от корабля "Синяя чайка" на расстояние большее, чем R.

Входные данные:

1-я строка содержит координаты корабля "Синяя чайка" и расстояние R (все числа целые и по модулю не более 106, R - натуральное);

2-я строка содержит координаты корабля "Пегас"

3-я строка содержит число N - количество команд (N ≤ 105).

В следующих N строках записаны параметры для команд исполнителя - три целых числа.

Выходные данные

Ответ на задачу - количество различных целочисленных точек, в которых успеет побывать Исполнитель до завершения программы

Копирую входные данные текстом:
1)
0 0 0 400
0 0 100
3
3 3 3
2 -3 -3
-6 0 0

2)
0 0 0 4
0 0 100
3
3 3 3
2 -3 -3
-6 0 0

3)
0 0 0 400
4 0 0
3
3 3 3
2 -3 -3
-6 0 0
Лучший ответ
Ashotik Craig Профи (989) 8 месяцев назад
def count_points(ship_coords, R, pegasus_coords, N, commands):
def distance(coord1, coord2):
return sum((x1 - x2) ** 2 for x1, x2 in zip(coord1, coord2)) ** 0.5

def is_within_range(coords):
return distance(coords, ship_coords) <= R

visited_points = set()
current_coords = ship_coords

for _ in range(N):
command = commands[_]
current_coords = (current_coords[0] + command[0], current_coords[1] + command[1], current_coords[2] + command[2])
visited_points.add(current_coords)

if is_within_range(current_coords):
visited_points.add(pegasus_coords)
break

return len(visited_points)

input_data1 = (0, 0, 0, 400)
input_data2 = (0, 0, 0, 4)
input_data3 = (0, 0, 0, 400)
ship_coords = (0, 0, 100)
pegasus_coords = (4, 0, 0)
N = 3
commands1 = [(3, 3, 3), (2, -3, -3), (-6, 0, 0)]
commands2 = [(3, 3, 3), (2, -3, -3), (-6, 0, 0)]
commands3 = [(3, 3, 3), (2, -3, -3), (-6, 0, 0)]

result1 = count_points(input_data1, ship_coords, pegasus_coords, N, commands1)
result2 = count_points(input_data2, ship_coords, pegasus_coords, N, commands2)
result3 = count_points(input_data3, ship_coords, pegasus_coords, N, commands3)

print(result1)
print(result2)
print(result3)
dvd5o3 vvУченик (85) 8 месяцев назад
прошу, скиньте скрин с пробелами, для понимания
Ashotik Craig Профи (989) dvd5o3 vv, Тебе наверное сейчас уже не нужно? Я просто только щас на сайт зашёл
dvd5o5 vvУченик (100) 8 месяцев назад
Это тот же я
ещё надо)
Ashotik Craig Профи (989) dvd5o5 vv, Может по братски сам у нейросети спросишь? CHATGPT называется
Остальные ответы
Похожие вопросы