Programozás‎ > ‎Feladatok‎ > ‎Pályázatok‎ > ‎Megoldás‎ > ‎

pr_palyazat.pas

Letöltés: pr_palyazat.pas

program palyaz;
 
var t1,t2:text; //filek
db:integer; //bemeneti sorok dbszama
i:integer; //ciklusvaltozo
hat,pen,beve,mi: array[0..10000] of integer;  //hatarido, penz, bevan-e, ...
j,mac:integer; //ciklusvaltozo, max ertek (max. kivalasztashoz)
ido:longint; //osszido
 
begin
assign(t1,'utemez.be'); //beolvasas
reset(t1);
readln(t1,db);
for i:=1 to db do readln(t1,hat[i],pen[i]);
close(t1);
for i:=1 to 10000 do begin beve[i]:=0; mi[i]:=0; end; //be van-e valasztva
 
ido:=0;
pen[0]:=0; beve[0]:=1; //max.kivalasztashoz...
 
for i:=10000 downto 1 do begin
 
mac:=0;
for j:=1 to db do if ((pen[j]>pen[mac]) and (hat[j]>=i)) and (beve[j]=0)
then mac:=j; //ha jo a hatarido, jobb ido mint a max, es nincs beval.
             //akkor bevalasszuk..., esidot is szamoljuk
if mac>0 then begin beve[mac]:=1; mi[i]:=mac; ido:=pen[mi[i]]+ido; end;
 
end;
 
assign(t2,'utemez.ki'); //kiiras
rewrite(t2);
 
writeln(t2,ido);
for i:=1 to 10000 do begin if mi[i]>0 then write(t2,mi[i],' '); end;
 
close(t2);
 
 
 
end.