Pagini recente » Cod sursa (job #428034) | Cod sursa (job #1082249) | Cod sursa (job #429933) | Cod sursa (job #272672)
Cod sursa(job #272672)
var f:text;
a:array[1..50,1..50] of longint;
n,m,i,b,d,q,z,k,r,j,min,fluxmax:longint;
c,pre,v:array[1..50] of integer;
ver:array[1..50] of boolean;
function lala:boolean;
begin
fillchar(ver,sizeof(ver),false);
fillchar(c,sizeof(c),0);
fillchar(pre,sizeof(pre),0);
ver[1]:=true;
c[1]:=1;
pre[1]:=0;
z:=1;
k:=1;
while z<=k do
begin
for i:=1 to n do
begin
if (a[c[z],i]>0) and (ver[i]=false) then
begin
pre[i]:=c[z];
inc(k);
c[k]:=i;
ver[i]:=true;
end;
end;
inc(z);
end;
if ver[n]=true then
lala:=true
else
lala:=false;
end;
begin
assign(f,'maxflow.in');
reset(f);
readln(f,n,m);
for i:=1 to m do
begin
readln(f,b,d,q);
a[b,d]:=q;
end;
close(f);
while lala do
begin
r:=n;
j:=0;
while r<>0 do
begin
inc(j);
v[j]:=r;
r:=pre[r];
end;
min:=maxlongint;
for i:=j downto 2 do
if a[v[i],v[i-1]]<min then
min:=a[v[i],v[i-1]];
for i:=j downto 2 do
begin
a[v[i],v[i-1]]:=a[v[i],v[i-1]]-min;
a[v[i-1],v[i]]:=a[v[i-1],v[i]]+min;
end;
fluxmax:=fluxmax+min;
end;
assign(f,'maxflow.out');
rewrite(f);
write(f,fluxmax);
close(f);
end.