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

Башня Петя в очередной раз купил себе набор из кубиков. На этот раз он выстроил из них настоящую крепость — последовательность из N столбиков, высота каждого столбика составляет Ai кубиков. Вскоре ему стало интересно, насколько его крепость защищена от жуликов и воров. Для этого он ввел понятие башни. Башней называется любая последовательность из K столбиков подряд (где K — любимое число Пети). Защищенность башни определяется как суммарная высота всех столбиков этой башни (чем она больше, тем громаднее и ужаснее она кажется), умноженная на минимум высоты столбиков башни (т.к. враги, очевидно, будут пытаться проникнуть через самое слабое место башни). Неприступность крепости определяется как сумма защищенностей каждой из башен. Петя решил как можно скорее посчитать, какова же неприступность его крепости. Однако вскоре он понял, что недостаточно знать высоту каждого из столбиков. В зависимости от того, как сгруппировать столбики в башни, получится разный результат. В различных вариантах группировки часть столбиков могут не принадлежать ни одной из башен. Разумеется, Петя выберет то разбиение на башни, при котором неприступность будет максимальна. Петя успешно справился со своей задачей, но теперь Правительство Флатландии решило защитить свой горный курорт. Правительство уже построило крепость из кубиков (просто кубики были побольше). Теперь вы должны Правительству посчитать неприступность этой крепости. Единственная трудность состоит в том, что у Правительства было очень много денег, и поэтому крепость была построена очень длинная. Входные данные В первой строке содержатся число N — количество столбиков в крепости и число K — любимое число Пети (1 ≤ K ≤ N ≤ 100 000). Далее в следующей строке содержатся N целых чисел, обозначающих Ai (1 ≤ Ai ≤ 106). Выходные данные В первой строке выведите число Q — количество башен в оптимальном разбиении. Далее выведите Q чисел — номера первых столбиков каждой башни. Примеры Ввод Вывод 8 3 1 2 3 4 1 6 7 8 2 2 6 1 1 1 1 1 2 1 1 1000000 2 1 2 Решите на с++ или Python

Показать ответ
Ответ:
aliaganieva70
aliaganieva70
07.04.2021 20:26
1. Вариант современного решения на современной версии языка Паскаль

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

begin
  var a:array[,] of integer:=(
      ( 2, 1,-1, 4),
      (-3, 1,-4, 1),
      ( 2, 1, 2, 3),
      ( 2, 2, 5, 4),
      (-3,-1,-3, 1));
  Writeln('*** Исходная матрица ***');
  a.Println(3); Writeln(3*a.ColCount*'-');
  var s:=a.Col(2).Where(x->Abs(x)<=3);
  Writeln('Элементов ',s.Count,', их сумма равна ',s.Sum)
end.

Результат
*** Исходная матрица ***
  2  1 -1  4
 -3  1 -4  1
  2  1  2  3
  2  2  5  4
 -3 -1 -3  1

Элементов 3, их сумма равна -2

2. Вариант решения "Так писали наши дедушки и так нас учат в школе"

const
  m=5;
  n=4;
  a:array[1..m,1..n] of integer=(
      ( 2, 1,-1, 4),
      (-3, 1,-4, 1),
      ( 2, 1, 2, 3),
      ( 2, 2, 5, 4),
      (-3,-1,-3, 1));

procedure SumCol(m,k:integer; var p,s:integer);
  var
    i:integer;
  begin
    s:=0; p:=0;
    for i:=1 to m do
      if Abs(a[i,k])<=3 then begin
        s:=s+a[i,k];
        p:=p+1
        end
  end;

var
  i,j,kol,sum:integer;
 
begin
  Writeln('*** Исходная матрица ***');
  for i:=1 to m do begin
    for j:=1 to n do Write(a[i,j]:3);
    Writeln
    end;
  for i:=1 to n do Write('---');
  Writeln;
  SumCol(m,3,kol,sum);
  Writeln('Элементов ',kol,', их сумма равна ',sum)
end.

Результат
*** Исходная матрица ***
  2  1 -1  4
 -3  1 -4  1
  2  1  2  3
  2  2  5  4
 -3 -1 -3  1

Элементов 3, их сумма равна -2
0,0(0 оценок)
Ответ:
pahalovrzx
pahalovrzx
20.07.2020 22:45

На бес­ко­неч­ном поле име­ет­ся вер­ти­каль­ная стена. Длина стены не­из­вест­на. От верх­не­го конца стены впра­во от­хо­дит го­ри­зон­таль­ная стена также не­из­вест­ной длины. Робот на­хо­дит­ся в клет­ке, рас­по­ло­жен­ной слева от ниж­не­го края вер­ти­каль­ной стены.

На ри­сун­ке ука­зан один из воз­мож­ных спо­со­бов рас­по­ло­же­ния стен и Ро­бо­та (Робот обо­зна­чен бук­вой «Р»).

На­пи­ши­те для Ро­бо­та ал­го­ритм, за­кра­ши­ва­ю­щий все клет­ки, рас­по­ло­жен­ные левее вер­ти­каль­ной стены и выше го­ри­зон­таль­ной стены и при­ле­га­ю­щие к ним. Робот дол­жен за­кра­сить толь­ко клет­ки, удо­вле­тво­ря­ю­щие дан­но­му усло­вию. На­при­мер, для при­ведённого выше ри­сун­ка Робот дол­жен за­кра­сить сле­ду­ю­щие клет­ки (см. ри­су­нок).

Ко­неч­ное рас­по­ло­же­ние Ро­бо­та может быть про­из­воль­ным. Ал­го­ритм дол­жен ре­шать за­да­чу для про­из­воль­но­го раз­ме­ра поля и лю­бо­го до­пу­сти­мо­го рас­по­ло­же­ния стен внут­ри пря­мо­уголь­но­го поля. При ис­пол­не­нии ал­го­рит­ма Робот не дол­жен раз­ру­шить­ся. Ал­го­ритм на­пи­ши­те в тек­сто­вом ре­дак­то­ре и со­хра­ни­те в тек­сто­вом файле. На­зва­ние файла и ка­та­лог для со­хра­не­ния Вам со­об­щат ор­га­ни­за­то­ры эк­за­ме­на.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота