思路:贪心。
时间=频率*长度,按时间排序,由大到小输出即可。
代码:
#include<iostream>
#include<algorithm>
using namespace std;
const int MAXN = 10001;
int n;
struct Inf {
int v;
int id;
bool operator < (Inf &a) {
return v > a.v;
}
}inf[MAXN];
int main()
{
cin >> n;
for (int i = 1; i <= n; i++) {
int l, r;
cin >> l >> r;
inf[i].v = l * r;
inf[i].id = i;
}
sort(inf + 1, inf + n + 1);
for (int i = 1; i <= n; i++)
cout << inf[i].id << " ";
return 0;
}