Cod sursa(job #537598)

Utilizator ion_calimanUAIC Ion Caliman ion_caliman Data 20 februarie 2011 17:11:01
Problema Energii Scor 20
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.06 kb
var     a:array[1..3,1..1001] of real;
        g,w,eg,cg:integer;
        f:text;
        i,j:longint;
        e,s:real;

procedure citire;
var     i:integer;
        f:text;
begin
  assign(f,'energii.in');
  reset(f);
  readln(f,g);
  readln(f,w);
  for i:=1 to g do
    begin
      readln(f,a[1,i],a[2,i]);
      a[3,i]:=a[2,i]/a[1,i];
    end;
end;

procedure sw(var a,b:real);
var t:real;
begin
  t:=a;
  a:=b;
  b:=t;
end;

procedure qs(left,right:integer);
var r:real;
        i,j:integer;
begin
  i:=left;
  j:=right;
  r:=a[3,(i+j) div 2];
  while i<j do
    begin
      while a[3,i]<r do inc(i);
      while a[3,j]>r do dec(j);
      if i<=j then begin sw(a[1,i],a[1,j]); sw(a[2,i],a[2,j]); sw(a[3,i],a[3,j]); inc(i); dec(j); end;
    end;
  if i<right then qs(i,right);
  if j>left then qs(left,j);
end;

begin
  citire;
  qs(1,g);
  s:=0;
  i:=0;
  e:=0;
  while e<w do
    begin
      inc(i);
      e:=e+a[1,i];
      s:=s+a[2,i];
    end;
  assign(f,'energii.out');
  rewrite(f);
  write(f,s:0:0);
  close(f);
end.