Cod sursa(job #148358)

Utilizator belgun_adrianBelgun Dimitri Adrian belgun_adrian Data 4 martie 2008 10:41:50
Problema Energii Scor 95
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.17 kb
//energii

var g,w,i,j,max,cost:integer;
    ener,inf:longword;
    a:array[0..5050] of longword;
    gen:array[1..1050] of record eng,cst:integer; end;

procedure citire;
        var f:text;
            i,j,x,y:integer;
        begin
        assign(f,'energii.in');
                reset(f);
                readln(f,g);
                readln(f,w);
                for i:=1 to g do begin
                    readln(f,x,y);
                    gen[i].eng:=x;
                    gen[i].cst:=y;
                    end;
                close(f);
        end;

procedure scriere;
        var f:text;
        begin
        assign(f,'energii.out'); rewrite(f);
         writeln(f,a[w]);
        close(f);
        end;

begin
citire;
//fillchar(a,4*w+4,255);
for i:=0 to w do
    a[i]:=20000000;
inf:=a[0];
a[0]:=0;
max:=0;
for i:=1 to g do begin
    for j:=max downto 0 do begin
     if a[j]<>inf then begin
        cost:=a[j]+gen[i].cst;
        ener:=( j +gen[i].eng);
        if ener>w   then ener:=w;
        if ener>max then max:=ener;
        if a[ener]>cost then
           a[ener]:=cost;
        end;
        end;
    end;
scriere;
end.