МарияМяуМяу
26.12.2020 00:25

Как это делать? информатика 10 класс.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Польбощь
10.01.2021 03:34
var   s : string[50];
  i, j, k : word;  
 f : boolean;  
function isSpace(ch : char) : boolean;
begin   isSpace := false;  
if ch = ' ' then isSpace := true;
end;  
begin   f := false;  
   repeat     j := 0;
    writeln('введите строку, состоящую из 2 слов');
    readln(s);    
for i := 1 to length(s) do    
   if isSpace(s[i]) then  
    begin    
     inc(j);      
   k := i;       end;
     if j =1 then f := true;
    until f;    
write(copy(s, k + 1, length(s)), ' ', copy(s, 1, k - 1)); 
end.
недавно такую писала :)
0,0(0 оценок)
Ответ:
fd1132
08.09.2022 01:29
Отсортируйте массив по не возрастанию (вместе с индексами) и подсчитайте сумму  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
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота