Специалисты фирмы Amazing Star Travel очень ответственно относятся к безопасности своих клиентов. Прежде чем маршрут из точки A в точку B будет одобрен для увлекательных путешествий, он проходит всестороннюю экспертизу. Помимо очевидных опасностей , таких как наличие на маршруте вредных космических излучений, активность пиратов и прогнозирования вспышек сверхновых, в числе прочих анализируется и множество других, более скучных. Современные исследования показали, что на пролетающий на околосветовых скоростях по отрезку AB космический корабль негативное влияние может оказать гравитационное поле звезд и планет. С удалением звезды или планеты от отрезка это влияние сначала возрастает, а потом скачкообразно падает до нуля. Особенно опасно, если звезда и планета расположены по разные стороны прямой AB. Тогда их воздействие мультиплицируется, то есть перемножается. Особо следует отметить, что эффект мультиплицирования возникает только в паре звезда-планета, а, например, для пар звезда-звезда или планета-планета не обнаружен. Кроме того, этот эффект не наблюдается, если звезда и планета расположены по одну сторону от прямой AB. Осталось сказать, что можно считать эффект гравитационного воздействия равным площади треугольника ABC, где A и B — начало и конец маршрута, а C — место расположения звезды или планеты. Вас просят оценить опасность заданного отрезка AB, то есть найти максимальную величину гравитационного воздействия на отрезок среди всех пар звезда-планета, расположенных по разные стороны прямой AB. Не стоит забывать и о простом воздействии отдельных объектов, которое может оказаться даже больше, чем воздействие пары. Входные данные.

В первой строке содержится четыре целых числа через пробел XA, YA, XB, YB — координаты точек A и В. Во второй строке содержатся числа NN и MM, разделенные пробелом (0 \leq N,M \leq 1000≤N,M≤100) — количество звёзд и количество планет соответственно. В каждой из следующих N строк содержатся координаты очередной звезды. Далее в каждой из следующих M строк содержатся координаты очередной планеты. Указанные звёзды и планеты и только они могут оказать ненулевое гравитационное влияние на отрезок AB. Все координаты целые, по модулю не превосходят 1000. Гарантируется, что никакие три точки из всех вышеперечисленных не находятся на одной прямой.

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

В ответе нужно выдать ответ на задачу — одно вещественное число округлённое ровно до двух знаков после точки. Разделитель между целой и дробной частями ответа — точка.
Sample Input 1:

-4 -2 2 0
3 4
-2 4
2 -1
1 -4
-3 3
-1 0
-2 -2
1 -1
Sample Output 1:

154.00

dzhulijamalish dzhulijamalish    3   29.10.2020 16:45    6

Ответы
оаоашвов оаоашвов  28.11.2020 16:46

def sqc(xa,ya,xb,yb,xc,yc) :

   return ((xb - xa) * (yc - ya) - (xc - xa) * (yb - ya)) / 2

 

xa, ya, xb, yb = map(float,input().split())

n, m = map(int,input().split())

astra = []

sc  = []

res, smax = 0, 0

for i in range(n) :

   xc, yc = map(float,input().split())

   astra.append((xc,yc))

   sctmp = sqc(xa,ya,xb,yb,xc,yc)

   if smax < abs(sctmp) :

       smax = abs(sctmp)

   #print(sctmp)

   sc.append(sctmp)

for i in range(m) :

   xc, yc = map(float,input().split())

   sp = sqc(xa,ya,xb,yb,xc,yc)

   if smax < abs(sp) :

       smax = abs(sp)

   #print(sp)

   for j in range(n) :

       xd, yd = astra[j][0], astra[j][1]

       if sp * sc[j] < 0 :

           if smax < abs(sp * sc[j]) :

               smax = abs(sp * sc[j])

print('{:.2f}'.format(smax))

У меня получилось.

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика