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;
}
posted @ 2011-05-24 09:07  KOKO's  阅读(158)  评论(0编辑  收藏  举报