记录编号 |
36435 |
评测结果 |
AAAAA |
题目名称 |
积木分发 |
最终得分 |
100 |
用户昵称 |
Truth.Cirno |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.185 s |
提交时间 |
2012-03-13 19:09:21 |
内存使用 |
0.34 MiB |
显示代码纯文本
#include <cstdio>
#include <cstdlib>
using namespace std;
struct datatype
{
int a,b;
}data[10001];
void swap(datatype &x,datatype &y)
{
datatype temp;
temp=x;
x=y;
y=temp;
}
void qqsort(int l,int r)
{
int ll=l,rr=r,temp;
temp=data[rand()%(r-l+1)+l].b;
while (ll<=rr)
{
while (data[ll].b<temp)
ll++;
while (temp<data[rr].b)
rr--;
if (ll<=rr)
{
swap(data[ll],data[rr]);
ll++;
rr--;
}
}
if (l<rr)
qqsort(l,rr);
if (ll<r)
qqsort(ll,r);
}
int main(void)
{
freopen("toybrick.in","r",stdin);
freopen("toybrick.out","w",stdout);
int i,n,s;
bool done;
scanf("%d%d",&n,&s);
while (n!=0)
{
done=true;
for (i=0;i<n;i++)
scanf("%d%d",&data[i].a,&data[i].b);
qqsort(0,n-1);
for (i=0;i<n;i++)
{
if (s>=data[i].b)
s+=data[i].a;
else
{
done=false;
break;
}
}
if (done)
printf("YES\n");
else
printf("NO\n");
scanf("%d%d",&n,&s);
}
return(0);
}