Задания
Версия для печати и копирования в MS Word
Тип 9 № 46967
i

В каж­дой стро­ке элек­трон­ной таб­ли­цы за­пи­са­ны че­ты­ре на­ту­раль­ных числа. Опре­де­ли­те, сколь­ко в таб­ли­це таких четвёрок, из ко­то­рых можно вы­брать три числа, ко­то­рые не могут быть сто­ро­на­ми ни­ка­ко­го тре­уголь­ни­ка, в том числе вы­рож­ден­но­го (вы­рож­ден­ным на­зы­ва­ет­ся тре­уголь­ник, у ко­то­ро­го сумма длин двух сто­рон равна длине тре­тьей сто­ро­ны).

За­да­ние 9

Спрятать решение

Ре­ше­ние.

За­ме­тим, что если наи­боль­шее число из четырёх боль­ше суммы двух наи­мень­ших чисел в стро­ке, то в такой четвёрке чисел можно вы­брать три числа, ко­то­рые не могут быть сто­ро­на­ми ни­ка­ко­го тре­уголь­ни­ка, в том числе вы­рож­ден­но­го. Тогда в ячей­ку E1 за­пи­шем фор­му­лу =МАКС(A1:D1) и ско­пи­ру­ем её во все ячей­ки диа­па­зо­на E2:E5000. В ячей­ку F1 за­пи­шем фор­му­лу =МИН(A1:D1) и ско­пи­ру­ем её во все ячей­ки диа­па­зо­на F2:F5000. В ячей­ку G1 за­пи­шем фор­му­лу =НАИ­МЕНЬ­ШИЙ(A1:D1;2) и ско­пи­ру­ем её во все ячей­ки диа­па­зо­на G2:G5000. Таким об­ра­зом, найдём наи­боль­шее число и два наи­мень­ших числа в стро­ке. В ячей­ку H1 за­пи­шем фор­му­лу =ЕСЛИ(E1>F1+G1;1;0) и ско­пи­ру­ем её во все ячей­ки диа­па­зо­на H2:H5000. Окон­ча­тель­но с по­мо­щью фор­му­лы =СУММ(H1:H5000) по­лу­чим ответ  — 3094.

 

Ответ: 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.


Аналоги к заданию № 46967: 47006 Все