pascal做题

1167:合照时间限制:1Sec内存限制:64MB提交:276解决:147[提交][状态][讨论版]题目描述歌手SJM到幼儿园跟小朋友玩,他到达的时候小朋友已经争着积木玩... 1167: 合照
时间限制: 1 Sec 内存限制:
64 MB
提交: 276 解决:
147
[提交][状态][讨论版]
题目描述

歌手SJM到幼儿园跟小朋友玩,他到达的时候小朋友已经争着积木玩了。小朋友都想要更多的积木砌一个自己喜欢的图形,砌玩就可以和SJM合照。同时,SJM手上还有一些积木,他可以把手里的这些积木全部给一个小朋友,然后等该小朋友砌完后就可以收回所发的积木和该小朋友原先手里的积木。但SJM想知道他最多可以和多少个小朋友合照,你能帮助他吗?

输入

输入第一行包括两个正整数N和S,中间用空格隔开,其中1<=N<=1000,1<=S<=10000,表示一共有N位小朋友,
SJM手上有S块积木。以下有N行,每行有两个正整数,a和b(1<=a<=10^5,1<=b<=10^9),表示每个小朋友手上有的积木数量和还需要的积木数量。

输出

输出SJM最多可以和多少个小朋友合照。

样例输入 Copy

2 2
1 4
2 1

样例输出 Copy

2

提示

输入样例2:
2 2
1 4
1 1

输出样例2:
1

样例解释:

样例1:有2个小朋友,SJM手里一开始有2块积木,第1个小朋友手里有1块积木,他还需要4块积木,第2个小朋友手里有2块积木,他还需要1块积木,SJM可以先满足第2个小朋友的需求,即给第2个小朋友1块积木,这样第2个小朋友就可以砌完图形,然后把所有的积木给SJM,这样SJM就有4块积木,此时可以满足第1个的需求,所有可以和2个小朋友合照。

样例2:SJM一开始只能满足第2个小朋友的需求,然后积木数量变为3,还是不能满足第1个小朋友的需求,所以最多只能和1个小朋友合照。

来源
展开
 我来答
白衣小强丶
2013-12-01 · TA获得超过8889个赞
知道小有建树答主
回答量:794
采纳率:100%
帮助的人:996万
展开全部
(快排+模拟)
观察题目可以发现,与一个小朋友合照后其实并不需要付出任何代价,而且合照后S必然会增加,故应该尽可能多的与小朋友合照,即优先选取需要积木数最少的小朋友合照。
程序:
var n,s,ans:longint;
a,b:array[1..1000]of longint;
//--------------------------------------------------------------------------------------------------------------------
procedure swap(var x,y:longint);
var z:longint;
begin
z:=x;x:=y;y:=z;
end;
procedure qsort(l,r:longint);
var x,y,z:longint;
begin
x:=l;y:=r;z:=b[(l+r)div 2];
repeat
while b[x]<z do inc(x);
while b[y]>z do dec(y);
if x<=y then
begin
swap(b[x],b[y]);
swap(a[x],a[y]);
inc(x);
dec(y);
end;
until x>y;
if x<r then qsort(x,r);
if y>l then qsort(l,y);
end;
//--------------------------------------------------------------------------------------------------------------------
procedure init;
var i:longint;
begin
readln(n,s);
for i:=1 to n do
readln(a[i],b[i]);
end;
procedure main;
var i:longint;
begin
qsort(1,n);
for i:=1 to n do
if s>=b[i] then
begin
inc(s,a[i]);
inc(ans);
end
else break;
writeln(ans);
end;
//--------------------------------------------------------------------------------------------------------------------
begin
init;
main;
end.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式