Отсортируйте массив по не возрастанию (вместе с индексами) и подсчитайте сумму 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);}Ввод - вывод:610 21 13 36 41 93325 4 2 3 1 6