В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
lenababkina200
lenababkina200
06.02.2023 18:06 •  Информатика

На аллее перед зданием министерства обороны в ряд высажены n дубов. в связи с грядущим приездом главнокомандующего, было принято решение срубить несколько деревьев для придания аллее более милитаристического вида. внутренние распорядки министерства позволяют срубать дуб только в двух случаях: * если и ближайший дуб слева, и ближайший дуб справа строго ниже, чем данный дуб. * если и ближайший дуб слева, и ближайший дуб справа строго выше, чем данный дуб. в частности, согласно этому правилу, нельзя срубить крайний левый и крайний правый дуб. министр хочет выработать такой план вырубки, чтобы в итоге осталось несколько дубов, высоты которых образуют неубывающую последовательность, то есть чтобы каждый дуб был не ниже, чем все дубы, стоящие слева от него. при этом, как человек любящий флору, министр хочет, чтобы было срублено минимальное возможное количество деревьев. сотрудникам министерства составить оптимальный план вырубки аллеи или выяснить, что срубить дубы соответствующим образом невозможно. входные данные первая строка входного файла содержит целое число n — количество дубов, растущих на аллее (2 < = n < = 200). вторая строка содержит n чисел — высоты дубов, слева направо. высоты дубов — положительные целые числа, не превышающие 1000. выходные данные если оставить последовательность дубов с неубывающими высотами невозможно, выходной файл должен содержать только одно число −1. в случае, если искомый план существует, в первую строку выходного файла выведите целое число m — минимальное количество дубов, которые необходимо срубить. в следующие m строк выведите оптимальный план вырубки деревьев — номера дубов в том порядке, в котором их следует срубать, по одному номеру на строке. дубы нумеруются слева направо натуральными числами от 1 до n. если планов с наименьшим числом срубаемых дубов несколько, выведите любой из них. пример ввод 5 3 2 4 8 5 вывод 2 2 4

Показать ответ
Ответ:
NadyaSmirnovaa
NadyaSmirnovaa
21.08.2022 15:29
Const n=15; 
var a:array[1..n] of integer;
i,s:integer; sr:real;
begin
Randomize;
writeln('Массив:');
for i:=1 to n do
 begin
 a[i]:=random(21);
 write(a[i]:3);
 end;
writeln;
s:=0;
for i:=1 to n do s:=s+a[i];
sr:=s/n;
writeln('Среднее арифметическое = ',sr:6:2);
writeln('Номера элементов, больших среднего арифметического:');
for i:=1 to n do
 if a[i]>sr then write(i:3);
writeln;
end.

Пример:
Массив:
  9 19 14 8 7 10 5 10 6 14 15 2 11 17 13
Среднее арифметическое = 10.67
Номера элементов, больших среднего арифметического:
  2 3 10 11 13 14 15
0,0(0 оценок)
Ответ:
pipinkorotkiy1
pipinkorotkiy1
16.05.2022 16:09
// PascalABC.NET 3.1, сборка 1218 от 12.04.2016
begin
  var a:=ArrRandom(ReadInteger('n='),1,99);
  a.Println;
  var k:=ReadInteger('k=');
  Writeln('Сумма чисел, кратных ',k,': ',
    a.Where(x->x mod k=0).Sum)
end.

Тестовое решение:
n= 18
45 17 36 15 65 17 97 44 49 43 60 51 66 72 18 55 71 85
k= 12
Сумма чисел, кратных 12: 168

// PascalABC.NET 3.1, сборка 1218 от 12.04.2016
begin
  var a:=ArrRandom(ReadInteger('n='),1,20);
  a.Println;
  a.Where((x,i)->x=i+1).Println
end.

Тестовое решение:
n= 16
17 2 1 14 20 19 10 3 9 15 14 4 2 7 2 16
2 9 16
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота