Program Goroda; Uses Crt; var NG : Array [1..6] of Byte; RG : Array [1..5,1..5] of Byte; PUT : Array [1..24] of Word; I,J,A,B,C,D,E,F,G,BUF,MIN,Z : Byte; begin ClrScr; Z := 3; A := 3; B := 3; For I := 1 to 5 do NG[I] := I; NG[6] := 1; Write(' A B C D E'); GotoXY(1,2); Writeln; Writeln('A'); Writeln; Writeln('B'); Writeln; Writeln('C'); Writeln; Writeln('D'); Writeln; Writeln('E'); For I := 1 to 5 do begin For J := 1 to 5 do begin GotoXY(A+J,B); Readln(RG[I,J]); If RG[I,J] < 10 then A:= A+2 else A := A+2; If J > 4 then A := 3; end; B := B + 2; end; E := 1; For F := 1 to 4 do begin For I := 1 to 5 do begin PUT[E] :=PUT[E] + RG[NG[I],NG[I+1]]; GotoXY(50,E); For G := 1 to 6 do begin If NG[G] = 1 then Write('A '); If NG[G] = 2 then Write('B '); If NG[G] = 3 then Write('C '); If NG[G] = 4 then Write('D '); If NG[G] = 5 then Write('E '); end; Write(' '); For G := 1 to 6 do Write(NG[G]); Write(' ',PUT[E]); END; E := E + 1; For D := 1 to 2 do begin BUF := NG[4]; NG[4] := NG[5]; NG[5] := BUF; For I := 1 to 5 do begin PUT[E] :=PUT[E] + RG[NG[I],NG[I+1]]; GotoXY(50,E); For G := 1 to 6 do begin If NG[G] = 1 then Write('A '); If NG[G] = 2 then Write('B '); If NG[G] = 3 then Write('C '); If NG[G] = 4 then Write('D '); If NG[G] = 5 then Write('E '); end; Write(' '); For G := 1 to 6 do Write(NG[G]); Write(' ',PUT[E]); end; E := E + 1; BUF := NG[3]; NG[3] := NG[5]; NG[5] := BUF; For I := 1 to 5 do begin PUT[E] :=PUT[E] + RG[NG[I],NG[I+1]]; GotoXY(50,E); For G := 1 to 6 do begin If NG[G] = 1 then Write('A '); If NG[G] = 2 then Write('B '); If NG[G] = 3 then Write('C '); If NG[G] = 4 then Write('D '); If NG[G] = 5 then Write('E '); end; Write(' '); For G := 1 to 6 do Write(NG[G]); Write(' ',PUT[E]); end; E := E + 1; end; BUF := NG[4]; NG[4] := NG[5]; NG[5] := BUF; For I := 1 to 5 do begin PUT[E] :=PUT[E] + RG[NG[I],NG[I+1]]; GotoXY(50,E); For G := 1 to 6 do begin If NG[G] = 1 then Write('A '); If NG[G] = 2 then Write('B '); If NG[G] = 3 then Write('C '); If NG[G] = 4 then Write('D '); If NG[G] = 5 then Write('E '); end; Write(' '); For G := 1 to 6 do Write(NG[G]); Write(' ',PUT[E]); end; E := E + 1; For J := 2 to 5 do begin MIN := J; For I := J to 5 do If NG[I] < NG[MIN] then MIN := I; BUF := NG[J]; NG[J] := NG[MIN]; NG[MIN] := BUF; end; BUF := NG[2]; NG[2] := NG[Z]; NG[Z] := BUF; Z := Z + 1; end; MIN := 1; For G := 1 to 24 do If PUT[G] < PUT[MIN] then MIN := G; GotoXY(1,13); Write(PUT[MIN]); Readln; end.