10026
每两种之间将其看成连续的两个,则这两个的前后关系对其他的没有影响,故是可以确定的,所以排序即可
//============================================================================ // Name : 10026.cpp // Author : // Version : // Copyright : Your copyright notice // Description : Hello World in C++, Ansi-style //============================================================================ #include <iostream> #include <cstdio> #include <algorithm> using namespace std; struct JOB { int NO; double time, fine; }a[1010]; int N, n; bool cmp(JOB a, JOB b) { return a.fine/a.time > b.fine/b.time; } int main() { scanf("%d", &N); while(N--) { scanf("%d", &n); for(int i = 1;i <= n;i++) { scanf("%lf%lf", &a[i].time, &a[i].fine); a[i].NO = i; } sort(a+1, a+n+1, cmp); for(int i = 1;i <= n;i++){ if(i == 1) printf("%d", a[i].NO); else printf(" %d", a[i].NO); } printf("\n"); if(N) printf("\n"); } return 0; }