题目链接:
解题思路:
用结构体排序就好,从最小的开始比较,大于就加上奖励,小于输出NO
下面是c++代码:
#include<iostream>
#include<algorithm>
using namespace std;
struct dragon {
int num;
int sum;
}a[1010];
bool cmp(dragon x, dragon y) {
return x.num < y.num;
}
int main()
{
int s, n;
cin >> s >> n;
for (int i = 0; i < n; i++) {
cin >> a[i].num >> a[i].sum;
}
sort(a, a + n, cmp);
for (int i = 0; i < n; i++) {
if (s <= a[i].num) {
cout << "NO";
return 0;
}
else {
s += a[i].sum;
}
}
cout << "YES";
return 0;
}