eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Треугольник

Треугольник

На плоскости расположено \textbf{N} (\textbf{3} ≤ \textbf{N}) точек. Из них случайным образом выбираются три точки, которые затем соединяются отрезками. Требуется определить математическое ожидание периметра получившегося треугольника, при условии, что каждое множество из трёх точек может быть выбрано с равной вероятностью, а получившийся треугольник может быть вырожденным. \InputFile В первой строке входного файла находятся два числа \textbf{H} и \textbf{W} (\textbf{1} ≤ \textbf{H}, \textbf{W} ≤ \textbf{700}). Далее следует строк по \textbf{H} символов. \textbf{j}-й символ \textbf{i}-ой строки равен '\textbf{1}', если есть точка с координатами (\textbf{i}, \textbf{j}), иначе в соответствующей позиции стоит символ '\textbf{0}'. Гарантируется, что во входных данных представлены как минимум три точки. \OutputFile В выходной файл выведите одно число --- математическое ожидание периметра получившегося треугольника. Ответ должен отличаться от правильного не более, чем на \textbf{10^\{-6\}}.
Лимит времени 6 секунд
Лимит использования памяти 256 MiB
Входные данные #1
11 20
10000000001000000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000
10000000000000000000
Выходные данные #1
34.142135624
Автор Дмитрий Жуков
Источник Зимняя Школа, Харьков 2011, День 2