题目:
思路: 我们可以使用贪心算法,时间复杂度为O(n)。
接下来我们用C++进行编程:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e3;
vector<int> hostc;
vector<int> hostw;
int main(){
int n, m;
while(cin >> n >> m)
{
for(int i = 0; i < n; i++)
{
int c, w;
cin >> c >> w;
hostc.push_back(c);
hostw.push_back(w);
}
ll energy = 0;
int coins = 0;
for(int i = 0; i < n; i++)
{
if(1ll * hostw[i] * m > hostc[i])
{
energy += hostc[i];
coins += hostw[i];
}
}
int result = coins - energy / m;
if(energy % m != 0)
result -= 1;
cout << result << endl;
}
return 0;
}