#include <iostream>
using namespace std;
class child
{
public:
child(){}
int have;
int need;
};
int main()
{
int num, sum;
while (true)
{
cin >> num >> sum;
if (num == 0)
{
break;
}
child c[num];
for (int i = 0; i < num; ++ i)
{
cin >> c[i].have >> c[i].need;
}
for (int i = 0 ;i < num; ++ i)
{
int min = i;
for (int j = i + 1; j < num; ++ j)
{
if (c[min].need > c[j].need)
{
min = j;
}
else if (c[min].need == c[j].need && c[min].have < c[j].have)
{
min = j;
}
}
int temp = c[i].need;
c[i].need = c[min].need;
c[min].need = temp;
int temp1 = c[i].have;
c[i].have = c[min].have;
c[min].have = temp1;
}
bool cherk = true;
for (int i = 0; i < num; ++ i)
{
if (sum < c[i].need)
{
cherk = false;
break;
}
else
{
sum += c[i].have;
}
}
if (cherk)
{
cout << "YES" << endl;
}
else
{
cout << "NO" << endl;
}
}
//system("pause");
}sicily1134.积木分发
最新推荐文章于 2017-04-01 19:55:16 发布
本文介绍了一个使用C++实现的程序,该程序通过读取输入来为一系列对象分配资源,并确保每个对象的需求得到满足。程序首先获取对象数量及总的可用资源,然后收集每个对象当前拥有的资源和其需求。接下来,程序对这些对象按需求数量进行排序,如果需求相同则按拥有资源数量降序排列。最后,程序检查是否可以满足所有对象的需求。


1807

被折叠的 条评论
为什么被折叠?



