Помогите с задачей для курсовой работы, пожалуйста! Это очень важно.НА С++

Помогите с задачей для курсовой работы, пожалуйста! Это очень важно.
НА С++ Либо С!
Мальчишка Антон решает вступительную работу в летний математический лагерь. В ней N заданий, которые можно исполнять в произвольном порядке. Разные задачи требуют разного времени для решения. При этом известно, что если задание с номером i выполнять j-м по счету, Антону потребуется Ti*j медли: чем больше мыслишь, тем больше устаешь. К примеру, если начать с первой задачки, а затем выполнить вторую, то потребуется T1*1 + T2*2 медли, а если выполнить сначала вторую задачу, а затем первую то T2*1 + T1*2. Подскажите Антону, в каком порядке необходимо решать задачки, чтоб на исполненье всей работы ушло как можно меньше медли.

Входные данные
В первой строке вводится число N, во 2-ой строке N чисел через пробелT1, T2, , TN, разделенные пробелами. Все числа целые и удовлетворяют следующим ограничениям: 0 lt; N 10, 0 lt; Ti 100.

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

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

include lt;iostreamgt;
include lt;cstdlibgt;
using namespace std;

int main()
   int n,i,s;
   bool priz=true;
   cingt;gt;n;
   int b[n],c[n];
   for (int i=0; ilt;n; i++)
    
       cingt;gt;b[i];
       c[i]=i+1;
     
// сортировка масcива по не возрастанию
   while (priz)
  
     priz=false;
     for (int i=0; ilt;n-1; i++)
    
       if (b[i]lt;b[i+1])
      
         swap(b[i],b[i+1]);
         swap(c[i],c[i+1]);              
         priz=true;
      
      
  
   s=0;
   for (int i=0; ilt;n; i++)  s+=b[i]*(i+1);
   coutlt;lt;slt;lt;endl;
   for (int i=0; ilt;n; i++)  coutlt;lt;c[i]lt;lt;" ";
   coutlt;lt;endl;
   system("pause");
   return(0);


Ввод - вывод:

6
10 21 13 36 41 9
332
5 4 2 3 1 6






, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт