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

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

изначально у нас нет ни одного кредита и ни одного отряда пехоты. но есть база и гарантия того, что враг нас не обнаружит, пока мы на него не нападём.

на нашей базе можно хранить не более кредитов. чтобы хранить больше, нужно строить хранилища: каждое стоит (≤) кредитов и в каждом можно будет хранить дополнительно по максимум кредитов. строительство моментально (а вы что, реализма

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

если после очередного описанного выше распределения на базе будет храниться хотя бы кредитов, то считается, что мы накопили кредитов, и миссия считается пройденной.

один отряд пехоты стоит (≤) кредитов. сразу после оплаты, которая тоже моментальна, отряд будет ждать приказаний на нашей базе.

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

по данным разведки, на вражеской базе отрядов, а добраться до вражеской базы наши отряды пехоты смогут за минут (все отряды, независимо от их количества, могут идти вместе).

за сколько в лучшем случае мы завершим миссию?

формат входных данных

единственная строка содержит 9 целых чисел (1≤≤100; ,≤).

формат выходных данных

выведите одно целое число – искомое количество минут.

пояснение к примеру

чтобы максимально быстро накопить 2700 кредитов, мы можем построить 2 хранилища через 3 минуты после начала (в этот момент у нас появятся первые кредиты) и далее просто складировать все кредиты на базе. тогда через 9 минут после начала на базе накопится необходимая сумма.

чтобы заставить врага сдаться, мы можем через 3 минуты после начала нанять 10 отрядов пехоты и сразу же пойти на вражескую базу. тогда через 6 минут после начала враги сдадутся.

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

sample input:

2700 1000 150 1000 3 1000 100 7 3
sample output:

6

Показать ответ
Ответ:
BRICKWIH
BRICKWIH
29.04.2020 06:44

program Geom;

program Test_nn;

{$APPTYPE CONSOLE}

{$R *.res}

uses

 Math;

var

 a: array of Extended;

 n, i, c: Integer;

 x: Extended;

begin

 Write ('Размерность массива = ');

 ReadLn (n);

 SetLength (a, n);

 Randomize;

 for i := Low (a) to High (a) do begin

   a [i] := (Random (2001) - 1000) / 1000;

   Write (a [i] :7 :3);

 end;

 x := 1;

 c := 1;

 WriteLn;

 for i := Low (a) to High (a) do begin

   if a [i] > 0 then begin

     Write (a [i] :7 :3);

     x := x * a [i];

     Inc (c);

   end;

 end;

 WriteLn;

 WriteLn ('Среднее геометрическое = ', Power (x, 1/c) :20 :15);

 ReadLn;

end.

0,0(0 оценок)
Ответ:
Aron91
Aron91
15.08.2022 04:40

#include <iostream>

#include <ctime>

#include <algorithm>

using namespace std;

int* input_arr_auto(int* arr, int n) {

for (int i = 0; i < n; i++) {

 arr[i] = rand() % 100;

}

return arr;

}

void print_array(int* arr, int n) {

cout << endl;

for (int i = 0; i < n; i++) {

 cout << arr[i] << "\t";

}

}

int* input_arr(int* arr, int n) {

cout << "Введите элементы массива по одному, или используйте другую функцию для автозаполнения";

for (int i = 0; i < n; i++) {

 cin >> arr[i];

}

return arr;

}

int third_largest(int* arr, int n) {

int first=arr[0], second=arr[0], third=arr[0];

if (n < 3) {

 return -1;

}

for (int i = 0; i < n; i++)

{

 if (arr[i] > first)

 {

  third = second;

  second = first;

  first = arr[i];

 }

 else if (arr[i] > second)

 {

  third = second;

  second = arr[i];

 }

 else if (arr[i] > third)

  third = arr[i];

}

return third;

}

int main() {

srand(time(NULL));

setlocale(LC_ALL, "Russian");

int n, third_elem;

cout << "Введите размерность N: ";

cin >> n;

int* arr = new int[n];

arr = input_arr_auto(arr, n);

print_array(arr, n);

third_elem = third_largest(arr, n);

if (third_elem == -1) {

 cout << "Недостаточно элементов массива";

}

for (int i = 0; i < n; i++) {

 if (arr[i] > third_elem) {

  arr[i] = third_elem;

 }

}

print_array(arr, n);

}

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