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

Коля изобрёл машину времени у себя в гараже и решил на этом заработать. но так как он знает, что организация контроля времени может забрать у него машину, он решил вести себя осторожнее и использовать рынок ценных бумаг в качестве источника дохода.
он отправился в будущее, посмотрел там котировок по акциям компании fais. компания примечательна тем, что один человек может держать только одну акцию. но когда коля увидел , он понял, что сам не сможет вычислить, когда нужно покупать акцию, а когда продавать. тогда он обратился за к вам, пообещав отдать половину заработанных денег.
вам прекрасно известно, что за подобные махинации могут оштрафовать или даже посадить в тюрьму, и вы решили посчитать, стоит ли участвовать в этом. вы уже решали подобную алгоритмическую пару лет назад и смогли найти свой старый код. к сожалению, его производительности не хватает, чтобы посчитать результат за адекватное время.
вам нужно оптимизировать представленную программу, которая вычисляет максимально возможный доход из всех возможных, опираясь на данные котировок. при этом не нужно учитывать деньги, которые тратятся на покупку акций, так как коля собирается взять их со своего счёта.

ваш старый код
входные данные — массив чисел, каждое из которых отражает цену акции в конкретный день. выходные данные — одно число, обозначающее максимально возможную прибыль.

var maxprofit = function (prices) {
return calculate(prices, 0);
}

function calculate(prices, index) {
if (index > = prices.length) {
return 0;
}

var maxprofix = 0;

for (var start = index; start < prices.length; start++) {
var localmaxprofit = 0;
for (var i = start + 1; i < prices.length; i++) {
if (prices[start] < prices[i]) {
var profit = calculate(prices, i + 1) + prices[i] - prices[start];
if (profit > localmaxprofit) {
localmaxprofit = profit;
}
}
}

if (localmaxprofit > maxprofix)
maxprofix = localmaxprofit;
}
return maxprofix;
}
примеры работы
пример 1
вход: [71,11,51,31,61,41]

выход: 70

покупаем во второй день по цене 11 и продаём на третий день за 51, прибыль — 40. после этого покупаем за 31 в четвёртый день и продаем на пятый за 61, прибыль — 30. в итоге получаем прибыль 70.
пример 2
вход: [13,24,35,46,57]

выход: 44

покупаем в первый день, продаём в последний.
пример 3
вход: [700,612,445,343,10]

выход: 0

здесь вообще невозможно заработать, поэтому максимальная прибыль — 0.

примечания
в качестве решения предоставьте файл, который экспортирует исправленный вариант функции maxprofit:

function maxprofit(prices) {
//
}

module.exports = maxprofit;
решение будет запускаться в nodejs 12.

Показать ответ
Ответ:
FireGame228
FireGame228
25.01.2022 06:35

ответ:ОБЪЯВЛЕНИЕ МАССИВА

Массивы в Паскале используются двух типов: одномерные и двумерные.

Определение одномерного массива в Паскале звучит так: одномерный массив — это определенное количество элементов, относящихся к одному и тому же типу данных, которые имеют одно имя, и каждый элемент имеет свой индекс — порядковый номер.

Описание массива в Паскале (объявление) и обращение к его элементам происходит следующим образом:

Описание массива в Паскале

Объявление массива

var dlina: array [1..3] of integer;

begin

dlina[1]:=500;  

dlina[2]:=400;  

dlina[3]:=150;

...

dlina — идентификатор (имя) массива;

для объявления используется служебное слово Array (в переводе с англ. «массив» или «набор»);

[1..3] — в квадратных скобках ставится номер (индекс) первого элемента, затем две точки и индекс последнего элемента массива, т.е. по сути, указывается количество элементов; количество элементов массива называется размерностью массива

of integer (с англ. «из целых чисел») — указывает, к какому типу относится массив, of здесь — служебное слово.

 

Объявить размер можно через константу:

размер массива через константу

ИНИЦИАЛИЗАЦИЯ МАССИВА

Кроме того, массив может быть сам константным, т.е. все его элементы в программе заранее определены. Описание такого массива выглядит следующим образом:

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

Заполнение последовательными числами:

заполнение массива

Результат:

A[1] = 8, A[2] = 9, A[3] = 10, ..., A[N] = A[N-1] + 1

Ввод с клавиатуры:

Пример: Рассмотрим, как происходит ввод массива в Паскале:

writeln ('введите кол-во элементов: ');

readln(n); {если кол-во заранее не известно, - запрашиваем его}

for i := 1 to n do begin

  write('a[', i, ']=');

  read(a[i]);

  ...

end;

...

Объяснение:

0,0(0 оценок)
Ответ:
еренйегер2398
еренйегер2398
25.01.2022 06:35

1 Аполлон - божество солнца, сын Зевса и Лето, а все остальные планеты

2. Флейта - духовный инструмент, а остальные струнные

3. Рикша - это повозка, а остальные название морских судов

4. Тургенев - писатель, а остальные композиторы

5. Нью-Йорк - город, а все остальные столицы

6. бунгало, иглу, шале - это жилье, причем тут осень и зима

7. Нил - река в африке, а остальные в Европе

8. Руслан - название самолета, остальные название авто

9. Торф - минерал, остальные твердые ископаемые

10. Кофе - мужского рода, остальные среднего рода

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