NekkeR8821
20.11.2022 14:21

решить задания с марс алгоритмики


решить задания с марс алгоритмики
решить задания с марс алгоритмики

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
OligCh
25.06.2021 20:53
<?php
echo "Исходный массив:";
$n = rand(1,13);
$S = 0;
for($i = 0; $i < $n; $i++)
{
   $A[] = rand(-10,10);
   $S+=$A[$i];
   echo " $A[$i]";
}
echo "<br>Сумма элементов = $S<br>";

$k = -1;
for($i = $n-1; $i >= 0; $i--)
   if ($A[$i] < 0) $k = $i;
if ($k == -1) echo "В массиве нет отрицательных элементов";
else echo "№ первого отрицательного: $k";
$Sr = $S/$n;
echo "<br>Sr = $Sr<br>";
$B = 0;
$C = 0;
for($i = 0; $i < $n; $i++)
{
   if ($A[$i] < $Sr) $B = $i;
   if ($A[$i] > $Sr) $C = $i;
}
echo "№ элемента, превышающего Sr: $C<br>";
echo "№ элемента, который меньше Sr: $B";
?>
0,0(0 оценок)
Ответ:
5Костя5
26.09.2021 08:49
Отсортируйте массив по не возрастанию (вместе с индексами) и подсчитайте сумму  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-бота