Cod sursa(job #130982)

Utilizator adrianraduleaRadulea Adrian adrianradulea Data 2 februarie 2008 19:29:36
Problema Energii Scor 10
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.77 kb
var f,g:text;
    a,b:array[1..1000] of 1..10000;
    c:array[1..10000] of real;
    y:real;
    x,n,w,i,j,val,k,min:integer;
    pret,sol:longint;
begin
assign(f,'energii.in'); reset(f); assign(g,'energii.out'); rewrite(g);
read(f,n); read(f,w);
for i:=1 to n do begin
  read(f,a[i],b[i]);
  c[i]:=a[i]/b[i];
end;
for i:=1 to n-1 do for j:=i+1 to n do if c[i]<c[j] then begin
  x:=a[i]; a[i]:=a[j]; a[j]:=x; x:=b[i]; b[i]:=b[j]; b[j]:=x; y:=c[i]; c[i]:=c[j]; c[j]:=y;
end;
sol:=-1;
val:=w; pret:=0; k:=0;
for i:=1 to n do
  if (a[i]>w) then sol:=a[i]
    else if a[i]<=val then begin val:=val-a[i]; pret:=pret+b[i]; k:=i end;
min:=5001;
for i:=n downto k-1 do if b[i]<min then min:=b[i];
pret:=pret+min;
if pret=0 then write(g,sol) else write(g,pret);
close(g);
end.