1. 程式人生 > >計蒜客之貪心篇

計蒜客之貪心篇

//費用最大為:2e9; 貪心
#include <iostream>
#include <algorithm>
using namespace std;
const int PRODUCER_MAX = 5005;

struct part {
    int price, tot;
};
int part_tot, producer_tot;
part p[PRODUCER_MAX];

void read() {
    cin >> part_tot >> producer_tot;
    for (int i = 1; i <= producer_tot; i++) {
        cin
>> p[i].price >> p[i].tot; } } bool cmp(const part& p1, const part& p2) { if (p1.price < p2.price) return true; else return false; } void solve() { sort(p + 1, p + producer_tot + 1, cmp); int tmp = part_tot; int cost = 0; for (int i = 1; i <= producer_tot; i++) { if
(tmp <= p[i].tot) { cost += tmp*p[i].price; break; } else { cost += p[i].tot * p[i].price; tmp -= p[i].tot; } } cout << cost << '\n'; } int main() { read(); solve(); return 0; }