上机实验3-压缩歌曲
#include<iostream>
#include <algorithm>
using namespace std;
//上机实验-压缩歌曲
int a[100005];
int b[100005];
int c[100005];
int main()
{
int n, m;
cin >> n >> m;
int sum1 = 0, sum2 = 0;
for (int i = 0; i < n; i++)
{
cin >> a[i] >> b[i];
c[i] = a[i] - b[i];
sum1 += a[i];
sum2 += b[i];
}
if (sum1 < m)
{
cout << "0" << endl;
return 0;
}
if (sum2 > m)
{
cout << "-1" << endl;
return 0;
}
//尽可能压缩变化大的
sort(c, c + n);
for (int i = n - 1; i >= 0; i--)
{
sum1 -= c[i];
if (sum1 < m)
{
cout << n - i << endl;
return 0;
}
}
return 0;
}
贪心算法