|
发表于 2023-1-3 13:42:26
|
显示全部楼层
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 110;
struct Product {
int price;
int amount;
} products[N];
bool cmp(Product a, Product b) {
return a.price < b.price;
}
int main() {
int m, n;
cin >> m >> n;
for (int i = 0; i < n; i++) {
cin >> products[i].price >> products[i].amount;
}
sort(products, products + n, cmp); // 按照价格从小到大的顺序排序
int count = 0;
for (int i = 0; i < n; i++) {
int amount = min(products[i].amount, m / products[i].price); // 购买数量尽量多
count += amount;
m -= amount * products[i].price; // 更新剩余的钱数
if (m == 0) {
break;
}
}
cout << count << endl;
return 0;
}
|
|