Pagini recente » Cod sursa (job #1891944) | Cod sursa (job #2301848) | Cod sursa (job #1515552) | Cod sursa (job #973808) | Cod sursa (job #603529)
Cod sursa(job #603529)
var a:array[1..2,1..1000]of integer;
b:array[1..1000]of real;
n,s,k:integer;
procedure init;
var f:text; x,y,i:integer;
begin
assign(f,'energii.in');
reset(f);
readln(f,n);
readln(f,s);
for i:=1 to n do
begin
readln(f,a[1,i],a[2,i]);
b[i]:=a[2,i]/a[2,i];
end;
close(f);
end;
procedure sw(var a,b:integer);
var t:integer;
begin
t:=a;a:=b;b:=t;
end;
procedure sw2(var a,b:real);
var t:real;
begin
t:=a;a:=b;b:=t;
end;
procedure qs(left,right:integer);
var i,j:integer;p:real;
begin
i:=left; j:=right; p:=b[(i+j) div 2];
while i<j do
begin
while b[i]<p do inc(i);
while b[j]>p do dec(j);
if i<=j then begin sw(a[1,i],a[1,j]);sw(a[2,i],a[2,j]);sw2(b[i],b[j]);inc(i); dec(j); end;
end;
if i<right then qs(i,right);
if j>left then qs(left,j);
end;
procedure calc;
var i:integer;
begin
k:=0;
for i:=1 to n do
begin
while a[1,i]<=s do
begin
k:=k+a[2,i];
s:=s-a[1,i];
end;
end;
end;
procedure afis;
var i:integer; f:text;
begin
assign(f,'energii.out');
rewrite(f);
if s=0 then writeln(f,k) else writeln(f,'-1');
close(f);
end;
begin
init;
qs(1,n);
afis;
end.