【题目】http://codeforces.com/contest/1015/problem/C
【大意】硬盘容量为21,有4首歌,前是原来大小,后是压缩大小,问最少压缩多少个能全装下。
【代码】
#include<bits/stdc++.h>
using namespace std;
int a[100005],b[100005];
int cha[100005];
bool cmp(int a,int b)
{
return a>b;
}
int main()
{
int n,m;
long long sum=0,sum2=0;
scanf("%d%d",&n,&m);
for(int i=0; i<n; i++)
{
scanf("%d%d",&a[i],&b[i]);
cha[i]=a[i]-b[i];
sum+=a[i];sum2+=b[i];
}
if(sum<=m){printf("0");return 0;}
if(sum2>m){printf("-1");return 0;}
sort(cha,cha+n,cmp);
long long t=sum-m;
int ans=0;
for(int i=0;i<n;i++)
{
t-=cha[i];
ans++;
if(t<=0)break;
}
printf("%d",ans);
}