#include #include // Greedy solution for 10026 struct job { int jobnum; int time; int penalty; }; int jobCompare(const void* r1, const void* r2) { // compare jobs by cost/day, breaking ties by jobnum const job* x1 = static_cast(r1); const job* x2 = static_cast(r2); int diff = x2->penalty * x1 -> time - x1->penalty * x2->time; if (diff != 0) return diff; else return x1->jobnum - x2->jobnum; } main(){ int numcases; cin >> numcases; for (int i=0; i> n; job Jobs[n]; for (int j=0; j> Jobs[j].time; cin >> Jobs[j].penalty; } qsort(Jobs, n, sizeof(Jobs[0]), jobCompare); for (int j=0; j <= n-1; j++) cout << Jobs[j].jobnum << "\n"; if (i < numcases-1) cout << "\n"; } }