((C[l,i]<>0)


((C[l,i]<>0) or (C[i,l]<>0)) then if F[l,i]<C[l,i] then begin{дуга прямая?} P[i,1]:=l; if P[l,2]<C[l,i]-F[l,i] then P[i,2]:=P[l,2] else P[i,2]:=C[l,i]-F[l,i]; end else if F[i,l]>0 then begin{дуга обратная?} P[i,1]:=-l; if P[l,2]<F[i,l] then P[i,2]:=P[l,2] else P[i,2]:=F[i,l]; end; M:=M-[l];{вершина с номером l просмотрена} l:=1;{находим помеченную и непросмотренную вершину} repeat Inc(l) until (l>N) or ((P[l,1]<>0) and (l in M)); if l>N then Lg:=false; end; end; Логика изменения потока F имеет вид: procedure Stream(q:integer); begin {определяем тип дуги - прямая или обратная, знак минус у номера вершины - признак обратной дуги} if P[q,1]>0 then F[P[q,1],q]:=F[P[q,1],q]+P[t,2] else F[q,abs(P[q,1])]:=F[q,abs(P[q,1])]-P[t,2]; {если не вершина-источник, то переход к предыдущей вершине цепочки} if abs(P[q,1])<>s then begin q:=abs(P[q,1]);Stream(q);end; end; Итак,
Индекс
Элементарные функции    Линейные уравнения    Нелинейные уравнения    Случайные числа


Hosted by uCoz