/p>
B [x + dx [i], y + dy [i]]: = true;
end;
end;
end;
begin
clrscr;
Init ('A: 241.txt');
sum1: = 0; sum: = A [1,1];
Solve (1,1, col);
WriteLn ('Result = ', Sum1);
readkey;
end.
3 Диспетчер і міліція.
Uses crt;
Const n = 100;
Type mas = array [1 .. n, 1 .. n] of Integer;
mas1 = array [1 .. n] of Integer;
mn = Set of 1 .. n;
Var m, first, last: integer;
D: mas1;
A: mas;
procedure Init (z: string); {ініціалізація вхідних даних}
Var i, j: integer;
f: text;
begin
Assign (f, z);
Reset (f);
ReadLn (f, m);
For i: = 1 to m do
begin
For j: = 1 to m do
Read (f, A [i, j]);
ReadLn (f);
end;
Close (f);
end;
function MinZn (R: mn): integer; {обчислює номер району, шлях до якого з району відправлення мінімальний}
var i, minn: integer;
Begin
minn: = MaxInt;
For i: = 1 to m do
If (D [i] 0) and (i in R) then
begin
MinZn: = i;
minn: = D [i];
end;
End;
Function Min (i, j: integer): integer; {повертає мінімальне значення з двох можливих}
Begin
If i <> 0 then
begin
If j <> 0 then
begin
If j
end Else Min: = i;
end Else Min: = j;
End;
procedure Milicia (s: integer);
var v, u: integer;
T: mn;
Begin
for v: = 1 to m do D [v]: = A [s, v];
D [s]: = 0; T: = [1 .. m] - [s];
While T <> [] do
Begin
u: = MinZn (T);
T: = T-[u];
For v: = 1 to m do
If v in T then
If A [u, v] <> 0 Then
D [v]: = Min (D [v], D [u] + A [u, v]);
end;
End;
Begin
clrscr;
Init ('A: milicia.txt');
WriteLn ('Введіть пункт відправлення і пункт призначення ');
ReadLn (first, last);
Milicia (first);
WriteLn (D [last]);
readkey;
End.
4 Задача про футболістів.
uses crt;
Const k = 100;
Type mas = array [1 .. k] of Integer;
Var m, q: integer;
A, B: mas;
procedure Init (z: string); {ініціалізація вихідних даних}
var i: integer;
f: text;
begin
Assign (f, z);
Reset (f);
ReadLn (f, m, q);
For i: = 1 to m do
Read (f, A [i]);
ReadLn (f);
For i: = 1 to q do
Read (f, B [i]);
Close (f);
end;
procedure Solve;
var i, j, t: integer;
D: mas;
begin