您的位置:首页 > 编程语言 > C语言/C++

USACO-Section1.3 Mixing Milk

2017-06-02 21:35 363 查看

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  usaco c++