0分求调
查看原帖
0分求调
663295
ruruo楼主2022/11/12 18:24
#include<iostream>
#include<algorithm>
using namespace std;

struct node{
	int t, k, zong;
	int id;
	int paiming;
}a[500005];

bool cmp1(node x, node y){
	if(x.zong != y.zong) return x.zong > y.zong;
	if(x.t != y.t) return x.t > y.t;
	return x.id < y.id;
}

bool cmp2(node x, node y){
	return x.id < y.id;
}

int main() {
	int n;
	cin >> n;
	for(int i = 1; i <= n; i++){
		cin >> a[i].t >> a[i].k;
		a[i].zong = a[i].t * a[i].k;
		a[i].id = i;
		
	}
	sort(a + 1, a + n + 1, cmp1);
	for(int i = 1; i <= n; i++){
		a[i].paiming = i;
	}
	sort(a + 1, a + n + 1, cmp2);
	for(int i = 1; i <= n; i++){
		cout << a[i].paiming << " ";
	}
	return 0;
}
2022/11/12 18:24
加载中...