src/work/jacint/preflow_hl2.h
changeset 101 d2ac583ed195
parent 98 ba20e7ab1baa
child 105 a3c73e9b9b2e
     1.1 --- a/src/work/jacint/preflow_hl2.h	Wed Feb 18 17:27:13 2004 +0000
     1.2 +++ b/src/work/jacint/preflow_hl2.h	Wed Feb 18 21:50:45 2004 +0000
     1.3 @@ -80,7 +80,7 @@
     1.4        IntMap level(G,n);      
     1.5        TMap excess(G); 
     1.6        
     1.7 -      std::vector<int> numb(n+1);    
     1.8 +      std::vector<int> numb(n);    
     1.9        /*
    1.10  	The number of nodes on level i < n. It is
    1.11  	initialized to n+1, because of the reverse_bfs-part.
    1.12 @@ -118,13 +118,14 @@
    1.13        /* Starting flow. It is everywhere 0 at the moment. */     
    1.14        for(OutEdgeIt e=G.template first<OutEdgeIt>(s); e.valid(); ++e) 
    1.15  	{
    1.16 -	  if ( capacity.get(e) == 0 ) continue; 
    1.17 +	  T c=capacity.get(e);
    1.18 +	  if ( c == 0 ) continue;
    1.19  	  NodeIt w=G.head(e);
    1.20  	  if ( w!=s ) {	  
    1.21  	    if ( excess.get(w) == 0 && w!=t ) stack[level.get(w)].push(w); 
    1.22 -	    flow.set(e, capacity.get(e)); 
    1.23 -	    excess.set(w, excess.get(w)+capacity.get(e));
    1.24 -	  } 
    1.25 +	    flow.set(e, c); 
    1.26 +	    excess.set(w, excess.get(w)+c);
    1.27 +	  }
    1.28  	}
    1.29  
    1.30        /* 
    1.31 @@ -155,7 +156,7 @@
    1.32  	  stack[b].pop();           
    1.33  	  int lev=level.get(w);
    1.34  	  int exc=excess.get(w);
    1.35 -	  int newlevel=2*n-2;      //In newlevel we bound the next level of w.
    1.36 +	  int newlevel=2*n;      //In newlevel we bound the next level of w.
    1.37  	  
    1.38  	  //  if ( level.get(w) < n ) { //Nem tudom ez mukodik-e
    1.39  	  for(OutEdgeIt e=G.template first<OutEdgeIt>(w); e.valid(); ++e) {