fork(1) download
  1. var
  2. n,s,i,t,min,tem,q:longint;
  3. boo:boolean;
  4. a,b:array[0..1000010] of longint;
  5.  
  6. begin
  7. readln(n,s);
  8. while n<>0 do
  9. begin
  10. boo:=true;
  11. readln(s);
  12. for i:=1 to n do
  13. readln(a[i],b[i]);
  14. t:=n;
  15. while (t>0)and(boo=true) do
  16. begin
  17. min:=1000000000;
  18. for i:=1 to t do
  19. if b[i]<min then
  20. begin
  21. min:=b[i];
  22. q:=i;
  23. end;
  24. tem:=b[q];
  25. b[q]:=b[t-1];
  26. b[t-1]:=tem;
  27. tem:=a[q];
  28. a[q]:=a[t-1];
  29. a[t-1]:=tem;
  30. if (s<b[t-1]) then begin writeln('NO'); boo:=false; end
  31. else s:=s+a[t-1];
  32. t:=t-1;
  33. end;
  34. if t=0 then writeln('YES');
  35. read(n);
  36. end;
  37. end.
Success #stdin #stdout 0.02s 8024KB
stdin
4 0
1 0
2 2
1 1
2 2
0 0
stdout
YES