М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Darima111
Darima111
27.10.2021 17:04 •  Информатика

Сдля курсовой работы, ! это важно. на с++ или с! мальчик антон решает вступительную работу в летний лагерь. в ней n , которые можно выполнять в произвольном порядке. разные требуют разного времени для решения. при этом известно, что если с номером i выполнять j-м по счету, антону потребуется ti*j времени: чем больше думаешь, тем больше устаешь. например, если начать с первой , а затем выполнить вторую, то потребуется t1*1 + t2*2 времени, а если выполнить сначала вторую , а затем первую – то t2*1 + t1*2. подскажите антону, в каком порядке нужно решать , чтобы на выполнение всей работы ушло как можно меньше времени. входные данные в первой строке вводится число n, во второй строке —n чисел через пробелt1, t2, …, tn, разделенные пробелами. все числа целые и удовлетворяют следующим ограничениям: 0 < n ≤ 10, 0 < ti ≤ 100. выходные данные требуется вывести сначала минимальное время, за которое можно решить все , а затем – номера в том порядке, в котором их нужно решать, чтобы уложиться в это время. все числа разделяются пробелами. если решений несколько, нужно выдать любое из них.

👇
Ответ:
Tuna234
Tuna234
27.10.2021
Отсортируйте массив по не возрастанию (вместе с индексами) и подсчитайте сумму  s = s+b[i]*(i+1) - индексы от нуля.
Это и будет наименьшее время.

#include <iostream>
#include <cstdlib>
using namespace std;

int main() {
   int n,i,s;
   bool priz=true;
   cin>>n;
   int b[n],c[n];
   for (int i=0; i<n; i++)
   { 
       cin>>b[i];
       c[i]=i+1;
   }  
// сортировка масcива по не возрастанию
   while (priz)
   {
     priz=false;
     for (int i=0; i<n-1; i++)
     {
       if (b[i]<b[i+1])
       {
         swap(b[i],b[i+1]);
         swap(c[i],c[i+1]);              
         priz=true;
       }
     } 
   }
   s=0;
   for (int i=0; i<n; i++)  s+=b[i]*(i+1);
   cout<<s<<endl;
   for (int i=0; i<n; i++)  cout<<c[i]<<" ";
   cout<<endl;
   system("pause");
   return(0);
}

Ввод - вывод:

6
10 21 13 36 41 9
332
5 4 2 3 1 6
4,4(90 оценок)
Открыть все ответы
Ответ:

на Free Pascal

Объяснение:

var

 a : integer;

 n, i, big, nc, ncount  : integer;

begin

 writeln('Введите количество чисел :');

 readln(n);

 big := 0;

 nc := 0;

 ncount := 0;

 for i := 1 to n do begin

   writeln('Введите ', i, ' число:');

   readln(a);

   if a>20 then

     big := big + a;

   if (a mod 2) <> 0 then begin

     nc := nc + a;

     inc(ncount);

   end;

  end;

 writeln('Сумма чисел > 20 = ', big);

 writeln('Среднее арифметическое ',ncount,' нечётных чисел =', nc/ncount:2:2);

end.

4,7(17 оценок)
Ответ:
vanila16
vanila16
27.10.2021

N=int(input())

a=[]

sum = 0

f = 0

c = 0

for i in range(N):

 l = int(input())

 sum = sum + l

 a.append(l)

if N == 1:

 print(1)

else:

 ans = []

 for i in range(N-1, 0, -1):

   if a[i] > a[i-1]:

     if sum > a[-1] or (sum > a[i+1] and f == 1):

       for k in range(c+1):

         ans.append(1)

       c = 0

       f = 1

     else:

       ans.append(0)

       f = 0

   elif a[i] == a[i-1]:

     c += 1

   else:

     ans.append(0)

     f = 0

   sum=sum-a[i]

 ans = ans[::-1]

 print(0)

 for i in range(c):

   print(0)

 for i in ans:

   print(i)

Объяснение:

с тебя 500 рублей у меня сегодня др

4,7(64 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ