Cod sursa(job #326292)

Utilizator andrey932Andrei andrey932 Data 24 iunie 2009 15:27:44
Problema Energii Scor 5
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.01 kb
var t:text;
    g,w,i,j,min,mini,luat:integer;
    p,c:array[0..1001] of integer;
    d:array[0..17000] of integer;
    x:array[0..16500,0..1001] of boolean;
    ok:boolean;


begin
assign(t,'energii.in'); reset(t);
readln(t,g);
readln(t,w);
for i:=1 to g do
  readln(t,p[i],c[i]);

d[0]:=0;
for i:=1 to 16500 do d[i]:=20000;
for i:=0 to w+1001 do
  begin

//    write('i=',i,'   ');

    for j:=1 to g do
      begin
//       if x[i,j]=true then write('[',j,']');
       if x[i,j]=false then
        if d[i]+c[j]<d[i+p[j]] then
          begin
            d[i+p[j]]:=d[i]+c[j];
            move(x[i],x[i+p[j]],sizeof(x[i]));
            x[i+p[j],j]:=true;
          end;
      end;       //                 writeln;
  end;
ok:=false;
close(t);
assign(t,'energii.out'); rewrite(t);
for i:=w to 16500 do
  if d[i]<>20000 then begin {luat:=i; write(t,d[i]);} ok:=true; break; end;
{for i:=1 to g do
  if x[luat,i]=true then write(i,' '); readln;
}
if ok=false then write(t,-1);
close(t);

end.