Cod sursa(job #916457)

Utilizator iu.ciocoiuIulian iu.ciocoiu Data 16 martie 2013 15:39:29
Problema Problema rucsacului Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.95 kb
program rucsac;
type vector=array[1..5000,1..2] of word;
var x:vector;
    i,n,g:word;
	pr,gr:longint;
	fin,fout:text;
procedure sort(var v:vector);
var i,aux:word; cond:boolean;
begin
repeat cond:=true;
       for i:=1 to n-1 do
	      if (v[i,2]<v[i+1,2])
		     then begin aux:=v[i,1]; v[i,1]:=v[i+1,1]; v[i+1,1]:=aux;
			            aux:=v[i,2]; v[i,2]:=v[i+1,2]; v[i+1,2]:=aux;
                        cond:=false;
                  end
			 else if (v[i,2]=v[i+1,2]) and (v[i,1]>v[i+1,1])
  			         then begin aux:=v[i,1]; v[i,1]:=v[i+1,1]; v[i+1,1]:=aux; end;
until (cond);
end;

begin
assign(fin,'rucsac.in'); reset(fin);
assign(fout,'rucsac.out');rewrite(fout);
readln(fin,n,g);
for i:=1 to n do readln(fin,x[i,1],x[i,2]);
sort(x); i:=1; pr:=0; gr:=0;
while (i<=n) and (gr<=g) do
   begin gr:=gr+x[i,1]; 
         pr:=pr+x[i,2]; 
		 i:=i+1; 
   end;
i:=i-1; pr:=pr-x[i,2];
writeln (fout,pr);
close(fin);close(fout);
end.