Cod sursa(job #41655)

Utilizator M@2Te4iMatei Misarca M@2Te4i Data 28 martie 2007 14:16:44
Problema Energii Scor 5
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.05 kb
program energii;

type sir=array[1..10000]of integer;

var e,m,b,c:sir;
    w,n:integer;

procedure citire;
var i:integer;
begin
assign(input,'energii.in');
reset(input);
readln(n);
readln(w);
for i:=1 to n do
    readln(e[i],c[i]);
close(input);
end;

procedure rezolvare;
var i,j,a,q:integer;
begin
for i:=1 to n do
    b[i]:=maxint;
m[n]:=e[n];
b[n]:=c[n];
for i:=n-1 downto 1 do
    begin
    q:=0;
    a:=0;
    for j:=i to n-1 do
        begin
        q:=q+e[j];
        a:=a+c[j];
        if (q+m[i+1]>=w) and (a+b[j+1]<b[i]) then
           begin
           b[i]:=a+c[j+1];
           m[i]:=q+e[i+1];
           end;
        if (q>=w) and (a<b[i]) then
           begin
           b[i]:=a;
           m[i]:=q;
           end
        end;
    end;
end;

procedure afisare;
var min,i:integer;
begin
assign(output,'energii.out');
rewrite(output);
min:=maxint;
for i:=1 to n do
    if (b[i]<min) and (m[i]>=w) then
       min:=b[i];
write(min);
close(output);
end;

begin
citire;
rezolvare;
afisare;
end.