您的位置:首页 > 其它

USACO Section 1.3: Mixing Milk

2014-03-18 13:08 225 查看
/*
ID: leetcod3
PROG: milk
LANG: C++
*/
#include <iostream>
#include <fstream>
#include <string>
#include <map>
#include <vector>
#include <set>
#include <algorithm>
#include <stdio.h>
#include <queue>
#include <cstring>
#include <cmath>
#include <list>
#include <cstdio>
#include <cstdlib>
#include <limits>
#include <stack>

using namespace std;

ofstream fout ("milk.out");
ifstream fin ("milk.in");
struct farmer {
int price;
int amount;
farmer(int p, int a) : price(p), amount(a) { }
farmer() : price(0), amount(0) { }
};

bool cmp(const farmer &a, const farmer &b) {
return a.price < b.price;
}

int main() {
int N, M;
fin >> N >> M;
vector<farmer> F(M);
for (int i = 0; i < M; i++) fin >> F[i].price >> F[i].amount;
sort(F.begin(), F.end(), cmp);
int ans = 0;
int curamount = 0;
int index = 0;
while (curamount < N) {
if (curamount + F[index].amount < N) {
ans += F[index].amount * F[index].price;
curamount += F[index].amount;
index++;
}
else {
ans += (N - curamount) * F[index].price;
break;
}
}
fout << ans << endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: