Как сделать так, чтобы код выводил сами координаты двух точек, между которыми наибольшее расстояние, помимо самого расстояния

На плоскости заданы своими координатами n точек. Составить функцию, определяющую между какими из пар точек самое большое расстояние. Указание: координаты точек занести в массив.

from math import sqrt
import random as rnd

def s(x1, y1, x2, y2):
    sec = sqrt((x2 - x1)**2 + (y2 - y1)**2)
    return sec

n = int(input("Введите количество строк: "))
mass = []
row = []
for i in range(n):
    for i in range(2):
        row.append(rnd.randint(1,99))
    mass.append(row)
    row = []
for i in range(n):
    for j in range(2):
        print(mass[i][j], end=' ')
    print()
max=0
for i in range(n):
    for j in range(n):
        l=int(s(mass[i][0], mass[i][1], mass[j][0], mass[j][1]))
        if max < l:
            max = l
print(max)

Ответы (2 шт):

Автор решения: Zhihar

когда взял у друга пример, потому что в понедельник сдавать задачу, но питон не учил от слова совсем? :)

from math import sqrt
import random as rnd

def s(point1, point2):
    return sqrt((point1[0] - point2[0])**2 + (point1[1] - point2[1])**2)

n = int(input("Введите количество строк: "))
mass = [(rnd.randint(1,99), rnd.randint(1,99)) for i in range(n)]

[print(*obj) for obj in mass]

max = 0
max_index = [0, 0]

for i in range(n):
    for j in range(i + 1, n):
        l = s(mass[i], mass[j])
        if max < l:
            max = l
            max_index = [i, j]

print(f"{int(max)}: p1: {mass[max_index[0]]}, p2: {mass[max_index[1]]}")
→ Ссылка
Автор решения: Be3y4uu_K0T

Используя itertools.combinations создадим список всех пар точек. Далее, вычислим максимальную пару точек по дистанции, используя функцию max с нашим "ключом", т.е. функцией, которая вычисляет дистанцию между точками. Функция принимает пару точек и возвращает дистанцию между ними.

Вот Ваш код:

import itertools
import random
import math

def distance(points: tuple[tuple[int, int], tuple[int, int]]) -> float:
    (x1, y1), (x2, y2) = points
    return math.sqrt((x1 - x2)**2 + (y1 - y2)**2)

n = int(input('Введите количество точек: '))
array = [(random.randint(1,99), random.randint(1,99)) for _ in range(n)]

print(array)
print(max(itertools.combinations(array, 2), key=distance))
→ Ссылка