Mixing Milk

来源:互联网 发布:打印机的端口名是什么 编辑:程序博客网 时间:2024/06/05 04:35
/*ID: america6PROG: milkLANG: C++11*/#include <iostream>#include <fstream>#include <string>#include <algorithm>#include <vector>using namespace std;typedef pair<int, int> pii;std::vector<pii> v;bool cmp(const pii &a, const pii &b) {    return a.first < b.first;}int main(int argc, char const *argv[]) {    ofstream fout ("milk.out");    ifstream fin ("milk.in");    int n, m;    fin >> n >> m;    while (m--) {        int pi, ai;        fin >> pi >> ai;        v.push_back(make_pair(pi, ai));    }    sort(v.begin(), v.end(), cmp);    int u = 0, tc = 0;    for (int i = 0; i < v.size(); ++i) {        int pi = v[i].first, ai = v[i].second;        if (u < n) {            int ub = min(n-u, ai);            u+=ub;            tc+=ub*pi;        } else {            break;        }    }    fout << tc << endl;    return 0;}

评注:

假设最高价格为MAXP,那么可以设一个MAXP大小的数组以减少用于排序的时间

0 0