Mixing Milk
2017.05.30
题解
贪心法,按价格排序,从低开始选取足够的牛奶。
代码
/*
ID: xhzdcyy1
PROB: milk
LANG: C++
*/
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
#define cin fin
#define cout fout
using namespace std;
ofstream fout ("milk.out");
ifstream fin ("milk.in");
struct node{
int p;
int a;
}arr[5000];
bool cmp(node a,node b){
return a.p-b.p<0;
}
int main()
{
int n,m;
cin>>n>>m;
for(int i=0;i<m;i++){
cin>>arr[i].p>>arr[i].a;
}
sort(arr,arr+m,cmp);
int cost=0;
for(int i=0;n>0;i++){
if(n>=arr[i].a){
cost+=arr[i].a*arr[i].p;
n-=arr[i].a;
}
else{
cost+=n*arr[i].p;
n=0;
}
}
cout<<cost<<endl;
return 0;
}