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;
}

浙公网安备 33010602011771号