提交时间:2025-09-17 17:45:27

运行 ID: 67386

#include <iostream> #include <vector> #include <algorithm> #include <iomanip> using namespace std; struct Person { int index; int time; }; bool compare(const Person &a, const Person &b) { return a.time < b.time; } int main() { int n; cin >> n; vector<Person> people(n); for (int i = 0; i < n; ++i) { cin >> people[i].time; people[i].index = i + 1; } sort(people.begin(), people.end(), compare); vector<int> order; for (const auto &p : people) { order.push_back(p.index); } double total_waiting_time = 0.0; int current_time = 0; for (int i = 0; i < n; ++i) { current_time += people[i].time; total_waiting_time += current_time; } double average = total_waiting_time / n; for (int i = 0; i < n; ++i) { if (i > 0) { cout << " "; } cout << order[i]; } cout << endl; cout << fixed << setprecision(2) << average << endl; return 0; }