题目请点我
题解:
简单贪心,按价钱排序。
代码实现:
/*
ID: eashion
LANG: C++
TASK: milk
*/
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#define MAX 5050
#define LL long long
using namespace std;
struct node{
int price;
int sum;
};
int N,M;
LL res;
node FLis[MAX];
bool cmp(const node a,const node b){
return a.price < b.price;
}
int main()
{
freopen("milk.in","r",stdin);
freopen("milk.out","w",stdout);
while( scanf("%d%d",&N,&M) != EOF ){
for( int i = 0; i < M; i++ ){
scanf("%d%d",&FLis[i].price,&FLis[i].sum);
}
res = 0;
sort(FLis,FLis+M,cmp);
for( int i = 0; i < M; i++ ){
if( N > FLis[i].sum ){
res += FLis[i].sum*FLis[i].price;
N -= FLis[i].sum;
}
else{
res += FLis[i].price*N;
break;
}
}
cout<<res<<endl;
}
return 0;
}