Elen-ti81459
?>

Дан массив, содержащий 2015 неотрицательных целых чисел. ямой называется не крайний элемент массива, который меньше обоих своих соседей. необходимо найти в массиве самую глубокую яму, то есть яму, значение которой минимально. если в массиве нет ни одной ямы, ответ считается равным 0. например, в массиве из шести элементов, равных соответственно 4, 9, 2, 17, 3, 8, есть две ямы – 2 и 3, самая глубокая яма – 2.

Информатика

Ответы

shangina1997507
Const
N=2015;
var
a: array [1..N] of integer;
i, min: integer;

begin
min:=-1;
for i:=2 to N-1 do
if (a[i]>a[i-1]) and (a[i]<a[i+1]) and ((a[i]<min) or (min=-1)) then
min:=a[i];
Writeln(min)
end.
nat63nesnova5
//PascalABC.NET 3.2 сборка 1318

Var
  ar1,ar2:array of integer;
  n1,n2,i:integer;

  procedure GenNotOdd(var ar1,ar2:array of integer;n:integer);
Var
  i,j:integer;
begin
i:=1;
j:=0;
setlength(ar1,n div 2);
while i<=n-1 do
  begin
    ar1[j]:=ar2[i];
    inc(j);
    i+=2;
  end;
end;

procedure SwapArr(var ar1,ar2:array of integer;var n1,n2:integer);
Var
  buf:array of integer;
  i,j,otbuf:integer;
begin
setlength(buf,n2);
for i:=0 to n2-1 do
  buf[i]:=ar2[i];
GenNotOdd(ar2,ar1,n1);
GenNotOdd(ar1,buf,n2);
otbuf:=n2;
n2:=n1 div 2;
n1:=otbuf div 2;
end;

procedure ReadArr(var ar:array of integer;var n:integer);
Var
  i:integer;
begin
readln(n);
setlength(ar,n);
for i:=0 to n-1 do
  readln(ar[i]);
end;

procedure WriteArr(ar:array of integer;n:integer);
Var
  i:integer;
begin
for i:=0 to n-1 do
  write(ar[i]:4);
writeln;
end;

  begin
ReadArr(ar1,n1);
ReadArr(ar2,n2);
SwapArr(ar1,ar2,n1,n2);
WriteArr(ar1,n1);
WriteArr(ar2,n2);
end.

Пример ввода:
2
1 2
7
1 2 3 4 5 6 7
Пример вывода:
2 4 6
2
olgakozelskaa492
)
  for (int i=0; i<n; i++)
    delete []a[i];
  system("pause");
  return 0;
  }

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Эх... сумасшествие это - делать на С++ такие задачи.
В качестве обидного бонуса - как выглядит полный аналог программы, но  на современном паскале. Можете сравнить размер программы. Смешно, не правда ли?

// PascalABC.NET 3.2, сборка 1370 от 24.12.2016
// Внимание! Если программа не работает, обновите версию!

begin
  var n:=ReadInteger('Строк:');
  var m:=ReadInteger('Столбцов:');
  var a:=MatrRandom(n,m,2,5); a.Println(2);
  Writeln(NewLine,'Суммы по строкам');
  a.Rows.Select(x->x.Sum).Println;
end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Дан массив, содержащий 2015 неотрицательных целых чисел. ямой называется не крайний элемент массива, который меньше обоих своих соседей. необходимо найти в массиве самую глубокую яму, то есть яму, значение которой минимально. если в массиве нет ни одной ямы, ответ считается равным 0. например, в массиве из шести элементов, равных соответственно 4, 9, 2, 17, 3, 8, есть две ямы – 2 и 3, самая глубокая яма – 2.
Ваше имя (никнейм)*
Email*
Комментарий*