这道题目首先要理解题意:给你一个洞的体积V,然后放N件物品,然后给出N组数据,分别代表的意思是:停放体积 移动体积
然后你想想:按照两者相差值按照由大到小排序,这个慢慢体会一下!
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
#include <cstdlib>
#include <cmath>
using namespace std;
const int maxn=1005;
int t,v,n;
struct node
{
int x;
int y;
int r;
} p[maxn];
int cmp(node a,node b)
{
return a.r>b.r;
}
int main()
{
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&v,&n);
for(int i=0; i<n; i++)
{
scanf("%d%d",&p[i].x,&p[i].y);
p[i].r=fabs(p[i].x-p[i].y);
}
sort(p,p+n,cmp);
int flag=0;
for(int i=0; i<n; i++)
{
if(v<p[i].y)
{
flag=1;
break;
}
v-=p[i].x;
}
if(flag)
{
printf("No\n");
}
else
{
printf("Yes\n");
}
}
return 0;
}