Вот тебе в паскале
program ryad_chisel;
var N, t:integer;
begin
read(N);
t:=(N*(N+1))div 2;
if t mod 2 =1 then writeln('IMPOSSIBLE')
else begin
if N mod 2 =0 then begin
t:=N div 4;
repeat
write('+');
t:=t-1;
until t=0;
t:=N div 2;
repeat
write('-');
t:=t-1;
until t=0;
t:=N div 4;
repeat
write('+');
t:=t-1;
until t=0;
end
else begin
t:=((N+1) div 4)-1;
repeat
write('+');
t:=t-1;
until t=0;
t:=((N-1) div 2)+1;
repeat
write('-');
t:=t-1;
until t=0;
t:=(N+1) div 4;
repeat
write('+');
t:=t-1;
until t=0;
end
end
end.
begin
var (n, m) := ReadInteger2('Количество строк и столбцов в массиве:');
Writeln('*** Исходный массив ***');
var r := MatrRandom(n, m, -99, 99);
r.Println(4);
Writeln(4 * r.ColCount * '-');
var c := ReadInteger('Введите значение С:');
var v := r.ElementsByRow.Where(t -> t < c).ToArray;
Writeln('*** Полученый вектор ***');
v.Println;
var i := v.IndexMax;
Writeln('Максимальный элемент v[', i + 1, ']=', v[i])
end.