В каждой строке электронной таблицы записаны четыре натуральных числа. Определите, сколько в таблице таких четвёрок, из которых можно выбрать три числа, которые не могут быть сторонами никакого треугольника, в том числе вырожденного (вырожденным называется треугольник, у которого сумма длин двух сторон равна длине третьей стороны).
Заметим, что если наибольшее число из четырёх больше суммы двух наименьших чисел в строке, то в такой четвёрке чисел можно выбрать три числа, которые не могут быть сторонами никакого треугольника, в том числе вырожденного. Тогда
Ответ: 3094.
Приведём решение Сергея Калугина на языке Python.
cnt = 0
f = open('107_9.csv')
for s in f:
a = list(map(int,s.split(';')))
a.sort()
if a[0] + a[1] < a[2] or a[0] + a[1] < a[3]:
cnt+=1
print(cnt)
Примечание. Файл следует сохранить в формате CSV.
Приведём решение Сергея Донец на языке PascalABC.NET.
uses XLSX;
begin
var cnt := 0;
var data := ReadXLSXAsInts('46967.xlsx');
foreach var rw in data do
if rw.Combinations(3).Any(trio ->
begin
var (a, b, c) := trio.Order;
result:=a + b < c;
end)
then cnt += 1;
Println(cnt);
end.
Примечание. Файл следует сохранить в формате xlsx.

