по 5 заданию
Удовлетворяют 6 записей, кроме 4-й записи где Год посадки больше 1980 и и высота равна 3, а по условию должно быть меньше
Запись 5 хотя и год посадки больше 1980, но высота (3,2) больше 3, поэтому удовлетворяет условию.
Остальные записи удовлетворяют обоим условиям
Const
m=8;
n=6;
var
a:array[1..m,1..n] of integer;
st,t:string;
i,j,k,s:integer;
begin
Write('k='); Read(k);
Randomize;
Writeln('Исходная матрица A[',m,',',n,']');
st:='';
for i:=1 to m do begin
s:=0;
for j:=1 to n do begin
a[i,j]:=Random(15)-5; // [-5;9]
Write(a[i,j]:3);
s:=s+a[i,j]
end;
Writeln;
if s>k then begin
Str(i,t);
if st='' then st:=t
else st:=st+','+t
end
end;
if st<>'' then Writeln('Искомые строки: ',st)
end.
Пример
k=15
Исходная матрица A[8,6]
3 -5 6 8 0 2
1 1 5 2 0 1
0 -1 1 9 5 8
-1 -2 -3 3 -2 -2
8 7 5 6 5 3
8 -1 7 -3 7 3
3 -5 6 -1 0 4
7 1 9 1 4 6
Искомые строки: 3,5,6,8
===== PascalABC.NET =====
begin
var a := ReadArrInteger('a:', 10);
var b := ReadArrInteger('b:', 10);
var L := new List<integer>;
var (m, im) := (a[0] * b[0], 0);
for var i := 1 to a.High do
begin
var c := a[i] * b[i];
if c > m then
begin
L.Clear;
L.Add(i);
(m, im) := (c, i)
end
else if c = m then
L.Add(i);
end;
foreach var i in L do
Println(i + 1, a[i], b[i], a[i] * b[i] / 2)
end.