usaco Mixing Milk
简单贪心,一个快排就够了。
/*
ID: like_091
PROG: milk
LANG: C++
*/
#include<iostream>
#include<fstream>
#include<algorithm>
#include<string>
#include<map>
using namespace std;
const int MAX = 5005;
struct Node{
int p, a;
}node[MAX];
int cmp(const void *a, const void *b)
{
struct Node *c = (Node *)a;
struct Node *d = (Node *)b;
return c->p - d->p;
}
int main(void)
{
ifstream cin("milk.in");
ofstream cout("milk.out");
int n, m, sum;
while (cin>>n>>m)
{
sum = 0;
for (int i = 0; i < m; i++)
cin>>node[i].p>>node[i].a;
qsort(node, m, sizeof(node[0]), cmp);
for (int i = 0; i < m; i++)
{
if (n >= node[i].a)
{
sum += node[i].p * node[i].a;
n -= node[i].a;
}else {
sum += n * node[i].p;
break;
}
}
cout<<sum<<endl;
}
return 0;
}
浙公网安备 33010602011771号