Отсортируйте массив по не возрастанию (вместе с индексами) и подсчитайте сумму 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
Если это про системы счисления, то тогда 1001010100
Уже писала, но напишу еще раз. Указывайте на каком языке программирования нужно писать программу.
program ff;
var
y,x:real;
begin
writeln('Введите x');
readln(x);
if x>=2 then
y:=sin(x)/sqr(x)
end;
if x<2 then
begin
y:=(x+8)/(x-2);
end;
writeln('y=',y);
readln();
end.
<span>может быть так:
</span>var x1,x2,y1,y2:integer;
a,b:real;
begin
write ('Введите x1 и x2: ');
readln (x1,x2);
write ('Введите y1 и y2: ');
readln (y1,y2);
a:=sqrt (sqr (x1) + sqr (y1));
b:=sqrt (sqr (x2) + sqr (y2));
if a>b then writeln ('1-я точка ближе')
else writeln ('2-я точка ближе');
end.