sort好用大家都知道的,废话不多说。
试过直接用数组,是会出现问题的,所以建议和容器一起用。
下面提供一种用法例子
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
struct Pearls
{
int value;
int amount;
};
bool cmp(struct Pearls a, struct Pearls b)
{
if(a.value > b.value)
{
return true;
}
return false;
}
int main()
{
int te;
int i;
int sum;
int n;
vector<struct Pearls> a(101);
int max;
scanf("%d", &te);
while(te--)
{
scanf("%d", &n);
for(i = 0; i < n; i++)
{
scanf("%d %d", &a[i].amount, &a[i].value);
}
sort(a.begin(), a.end(), cmp);
for(i = 0; i < n; i++)
{
//printf("%d %d\n", a[i].amount, a[i].value);
}
max = a[0].value;
//printf("%d\n", max);
sum = max * (a[0].amount + 10);
for(i = 1; i < n; i++)
{
if(a[i].value * (a[i].amount + 10) > max * a[i].amount)
{
sum += max * a[i].amount;
}
else
{
max = a[i].value;
sum += max * (a[i].amount + 10);
}
}
printf("%d\n", sum);
}
//scanf("%d");
}