Есть ответ 👍

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

277
477
Посмотреть ответы 2

Ответы на вопрос:

QFARRO
4,5(57 оценок)

Отсортируйте массив по не возрастанию (вместе с индексами) и подсчитайте сумму  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

Function sum(m: myarray): integer var     i,     s   :   integer sum: =0 for i: =1   to n do (к уже найденной сумме первых (i-1) элементов прибавляем i-ый элемент) s: =s+m[i]; sum: =s; end;   это все что я

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

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

Подпишись на наш телеграмм канал

GTP TOP NEWS