Локи решил передать несколько магических книг в библиотеку Асгарда. Бережно упаковывая эти древние книги, он обвязал их бечевкой, как показано на рисунке.
Всего Локи упаковал четыре набора книг. В каждом наборе N книг, и все магические книги
в наборе имеют одинаковые размеры (L — длина, W — ширина, H — толщина в дюймах Локи определить, какой длины бечевка ему потребуется для каждого набора книг, если для
завязывания узла сверху необходимо по X дюймов бечевки с каждого ее конца.
Номер набора N L W H X
1 1 4 2 1 10
2 5 4 3 3 9
3 10 6 7 4 12
4 5 9 8 7 17
ответом на данную задачу являются четыре целых числа, перечисленные через пробел:
длина бечевки, необходимой для каждого набора книг.
Если вы не знаете ответ для какого-то набора, запишите вместо него любое целое число.
Замечание
Рассмотрим пример. Представим, что Локи связывает набор из двух книг, каждая из которых имеет размеры: L = 10 — длина, W = 5 — ширина, H = 2 — толщина, а для завязывания узла
требуется по X = 2 дюйма с каждого конца бечевки. В этом примере Люки потребуется бечевка
длиной 50 дюймов. Действительно, 20 дюймов бечевки уйдет на обвязывания сверху и снизу длинных сторон, 10 дюймов потребуется на обвязывание сверху и снизу коротких сторон, 16 дюймов —
на обвязывание набора по его боковым сторонам и еще 4 дюйма на завязывание узла.
CLS
INPUT "m=", m
DIM a(1 TO m, 1 TO m) AS INTEGER
RANDOMIZE TIMER
FOR i = 1 TO m
FOR j = 1 TO m
a(i, j) = 50 * RND - 25
PRINT USING ""; a(i, j);
NEXT j
PRINT
NEXT i
DIM P AS DOUBLE, S AS INTEGER
DIM B(1 TO m) AS DOUBLE
P = 1
FOR i = 1 TO m
S = 0
FOR j = 1 TO m
IF a(i, j) > 0 THEN P = P * a(i, j)
S = S + a(i, j)
NEXT j
B(i) = S / m
NEXT i
PRINT "P="; P
PRINT "Vector"
FOR i = 1 TO m
PRINT USING "###."; B(i)
NEXT i
Пример
m=5
3 -12 -2 -3 -4
11 -13 21 20 14
21 5 18 -20 -1
-3 24 -24 -19 8
-14 -24 -7 -2 -3
P= 70413235200
Vector
-3.60000
10.60000
4.60000
-2.80000
-10.00000
// Внимание! Если программа не работает, обновите версию!
1)
begin
var (n,m):=ReadInteger2('Количество строк и столбцов в массиве:');
Writeln('*** Исходный массив [',n,',',m,'] ***');
var a:=MatrRandom(n,m,-99,99);
a.Println(4); Writeln(4*a.ColCount*'-');
var b:=a.Rows.Select(r->r.Where(t->t.IsOdd).LastOrDefault); b.Println;
end.
Пример
Количество строк и столбцов в массиве: 8 5
*** Исходный массив [8,5] ***
-41 36 -99 14 17
-22 12 71 -94 -42
-35 -40 26 2 24
39 17 20 11 84
-53 -18 97 -6 5
2 67 -54 -6 -3
95 -87 90 -13 -37
-81 -21 61 -90 -60
--------------------
17 71 -35 11 5 -3 -37 61
2)
begin
Writeln('*** Исходный массив ***');
var a:=MatrRandom(20,10,2,5);
a.Println(2); Writeln(2*a.ColCount*'-');
Writeln('Ср. 5-го ученика: ',a.Row(4).Average)
end.
Пример
*** Исходный массив ***
2 2 3 3 4 3 4 2 3 2
4 3 2 3 2 4 3 2 5 3
4 2 3 3 4 5 5 2 2 4
5 2 4 2 4 5 4 2 3 3
5 3 3 2 3 4 5 4 4 4
3 2 3 2 3 2 5 2 4 4
4 4 5 5 2 4 5 5 4 2
2 2 5 4 4 2 4 3 2 2
2 2 4 4 2 4 4 4 5 4
2 3 4 4 5 3 3 4 5 4
5 2 5 3 3 2 3 5 3 2
3 4 2 3 4 3 2 3 4 3
2 2 2 2 2 4 4 2 4 2
5 2 3 3 3 5 3 2 2 5
2 4 2 4 3 3 3 2 5 4
3 2 5 4 4 4 5 5 3 5
4 3 2 3 3 2 2 4 2 4
2 5 2 5 2 3 2 4 5 4
3 3 2 2 5 4 3 5 4 4
2 3 5 3 3 5 4 5 2 2
--------------------
Ср. 5-го ученика: 3.7