n = int(input())
a = list(map(int, input().split()))
b_copy = [i for i in a]
b_copy.sort(reverse=True)
order = []
ans = 0
for i in range(len(b_copy)):
index = a.index(b_copy[i])
order.append(index+1)
ans += (b_copy[i]*i)+1
a[index] = 0
print(ans)
for i in order:
print(i, end=' ')
print()
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int n;
cin >> n;
int a[n];
int b[n];
for (int i = 0; i < n; i++){
cin >> a[i];
b[i] = i+1;
}
for (int i = 0; i < n; i++){
for (int j = 0; j < n; j++){
for (int k = j+1; k < n; k++){
if (a[j] < a[k]){
int x = a[j];
a[j] = a[k];
a[k] = x;
x = b[j];
b[j] = b[k];
b[k] = x;
}
}
}
}
int total = 0;
for (int i = 0; i < n; i++){
total += i * a[i] + 1;
}
cout << total << endl;
for (int i = 0; i < (n-1); i++){
cout << b[i] << " ";
}
cout << b[n-1] << endl;
}
292B - Network Topology | 1339A - Filling Diamonds |
910A - The Way to Home | 617A - Elephant |
48A - Rock-paper-scissors | 294A - Shaass and Oskols |
1213A - Chips Moving | 490A - Team Olympiad |
233A - Perfect Permutation | 1360A - Minimal Square |
467A - George and Accommodation | 893C - Rumor |
227B - Effective Approach | 1534B - Histogram Ugliness |
1611B - Team Composition Programmers and Mathematicians | 110A - Nearly Lucky Number |
1220B - Multiplication Table | 1644A - Doors and Keys |
1644B - Anti-Fibonacci Permutation | 1610A - Anti Light's Cell Guessing |
349B - Color the Fence | 144A - Arrival of the General |
1106A - Lunar New Year and Cross Counting | 58A - Chat room |
230A - Dragons | 200B - Drinks |
13A - Numbers | 129A - Cookies |
1367B - Even Array | 136A - Presents |