program Simulation_of_PrinT;
uses crt, dos;
type
	nizint=array [1..100] of integer;
	nizstr=array [1..100] of string;
var
	Prioritet, Velicina, Vreme:nizint;
	Ime:nizstr;
	Brzina, k:integer;

procedure Sortiranje(var Ime:nizstr; var Prioritet, Velicina, Vreme:nizint; var k:integer);
var
 p,i:integer;
 pstr:string;
begin
 for i:=k downto 2 do
  if Prioritet[i]<Prioritet[i-1] then begin
   p:=Prioritet[i];
   Prioritet[i]:=Prioritet[i-1];
   Prioritet[i-1]:=p;
   pstr:=Ime[i];
   Ime[i]:=Ime[i-1];
   Ime[i-1]:=pstr;
   p:=Velicina[i];
   Velicina[i]:=Velicina[i-1];
   Velicina[i-1]:=p;
   p:=Vreme[i];
   Vreme[i]:=Vreme[i-1];
   Vreme[i-1]:=p;
  end;
end;	{of procedure unos}

procedure Unos(var Ime:nizstr; var Prioritet, Velicina, Vreme:nizint; var k:integer);
label
	Error_input1, Error_input2;
var
	Sat, Min, Sec, Sec100:word;
begin
 k:=k+1;
Error_input2:
 write ('       Ime: '); readln (Ime[k]);
 if Ime[k]='' then goto Error_input2;
Error_input1:
 write (' Prioritet: '); readln (Prioritet[k]);
 if Prioritet[k]>3 then goto Error_input1;
 write ('  Velicina: '); readln (Velicina [k]);
 GetTime(Sat,Min,Sec,Sec100);
 Vreme[k]:=(Sat*3600)+(Min*60)+Sec;
{ Sortiranje(Ime, Prioritet, Velicina, Vreme, k);}
end;	{of procedure unos}

procedure Print(var Ime:nizstr; var Prioritet, Velicina, Vreme:nizint; var k:integer);
var
 i:integer;
begin
clrscr;
Velicina[1]:=Velicina[1]-Brzina;
Vreme[1]:=Vreme[1]-1;
 If Velicina[1]<=0 then begin
   for i:=k downto 1 do begin
    Ime[i-1]:=ime[i];
    Prioritet[i-1]:=Prioritet[i];
    Velicina[i-1]:=velicina[i];
    Vreme[i-1]:=Vreme[i];
    k:=k-1;
   end;
 end;
writeln('     Ime: ', Ime[1]);
writeln('Velicina: ', Velicina[1]);
writeln('   Vreme: ', Vreme[1]);
for i:=2 to k do writeln(Ime[i]);
end;	{of procedure Print}

begin	{<------------ of main program}
k:=0;
write ('Brzina stampe: '); readln (Brzina);
Unos(Ime, Prioritet, Velicina, Vreme, k);
repeat
 If k=0 then Unos(Ime, Prioritet, Velicina, Vreme, k)
              else 
              Print(Ime, Prioritet, Velicina, Vreme, k);
 Unos(Ime, Prioritet, Velicina, Vreme, k);
until keypressed;
end.