В каждой строке электронной таблицы записаны четыре натуральных числа. Определите, сколько в таблице таких четвёрок, в которых любые три числа могут быть сторонами невырожденного треугольника (вырожденным называется треугольник, у которого сумма длин двух сторон равна длине третьей стороны).
Заметим, что если наибольшее число больше или равно сумме двух наименьших, то из этих трех чисел треугольник составить нельзя, а потому и вся четверка чисел не подходит. Если же наибольшее число меньше суммы двух наименьших, то из любых трех чисел такой четверки треугольник составить можно. Найдем все такие четверки чисел.
Ответ: 1842.
Примечание.
Для программного решения файл exсel необходимо сохранить как текстовый документ.
Приведём решение Алиева Рамира на языке Python.
from itertools import permutations
y = [list(map(int,i.split())) for i in open('9.txt')]
q = 0
for u in y:
if all(n[0]+n[1]>n[2] for n in permutations(u,3)):
q += 1
print(q)
Приведём решение Никиты Юрлова на языке Python.
f = open('107_9.txt')
c = 0
for i in f:
a = sorted(list(map(int, i.split())))
if a[0] + a[1] > a[3] and a[0] + a[2] > a[3] and a[1] + a[2] > a[3]:
c += 1
print(c)
Приведём решение Сергея Донец на языке PascalABC.NET.
uses XLSX;
begin
var cnt := 0;
var data := ReadXLSXAsInts('47006.xlsx');
foreach var rw in data do
if rw.Combinations(3).All(trio ->
begin
var (a, b, c) := trio.Order;
result:=a + b > c;
end)
then cnt += 1;
Println(cnt);
end.
Примечание. Файл следует сохранить в формате xlsx.

