http://acm.mipt.ru/judge/problems.pl?problem=004
給N個運動員,他們有質量m和力量s,如果mi>mj則有si>sj,現在要他們疊羅漢。強度爲s的人最多能支撐質量和sum<=s。
注意條件:如果mi>mj則si>sj。這樣就可以貪心了~~~
按照m爲第一關鍵字,s爲第二關鍵字,然後排序,之後一個一個疊羅漢就好了
代碼:
function rd() return io.stdin:read("*n") end
n,a=rd(),{}
for i=1,n do
local ms={}
ms.m,ms.s=rd(),rd()
a[i]=ms
end
table.sort(a,function(x,y) return x.m~=y.m and x.m<y.m or x.s<y.s end)
ans,sum=0,0
for i=1,n do
if a[i].s >= sum then
sum = sum + a[i].m
ans = ans + 1
end
end
print (ans)