
Артур
7 год назад
Вам дан массив A длины n. Вы можете удалить некоторые элементы из него, при этом после всех удалений элементы должны стоять в строго возрастающем порядке. Выведите максимальную возможную длину массива после всех удалений.
ОТВЕТЫ

Keapnekva
Jul 14, 2019
{Автор: Рудницкий В. Л.
Ограничения: Последовательность не может быть длинее NN.
Откуда: Олимпиада, KZ, 2016.}
const NN = 10000;
var a : array [1 .. NN] of integer; i, j, d, N: integer;
begin
write(Введите длину массива: ); readln(N);
writeln(Введите массив чисел через пробел:);
for i := 1 to N do read( a[i] );
{ Удаляем повторы чисел }
for i := 1 to N-1 do
for j := i+1 to N do
if a[i] = a[j] then a[j] := 0;
{ Создаем последовательность заполняя не нужные числа нулями }
for i := 2 to N do if ( a[i-1] gt; a[i] ) and ( a[i] lt;gt; 0 ) then a[i] := 0;
{ Суммируем не нулевые элементы }
d := 0; for i := 1 to N do if a[i] lt;gt; 0 then d := d + 1;
writeln(Максимальная длинна массива после удалений: ,d);
end.
Ограничения: Последовательность не может быть длинее NN.
Откуда: Олимпиада, KZ, 2016.}
const NN = 10000;
var a : array [1 .. NN] of integer; i, j, d, N: integer;
begin
write(Введите длину массива: ); readln(N);
writeln(Введите массив чисел через пробел:);
for i := 1 to N do read( a[i] );
{ Удаляем повторы чисел }
for i := 1 to N-1 do
for j := i+1 to N do
if a[i] = a[j] then a[j] := 0;
{ Создаем последовательность заполняя не нужные числа нулями }
for i := 2 to N do if ( a[i-1] gt; a[i] ) and ( a[i] lt;gt; 0 ) then a[i] := 0;
{ Суммируем не нулевые элементы }
d := 0; for i := 1 to N do if a[i] lt;gt; 0 then d := d + 1;
writeln(Максимальная длинна массива после удалений: ,d);
end.
200
Смежные вопросы: