func (a *LSAP) ReducedCost(u, v int) int64 {
	return a.a[u][v] - a.u[u] - a.v[v]
}
ReducedCost returns the reduced cost of an edge. If Assign is called prior,
then the reduced cost of a nonbasic (not in the optimal assignment) edge is
the additional cost introducing that edge would incur.
package lsap
import "github.com/ryanjoneil/ap"
type LSAP struct {
	M int64  
	n int    
	a [][]int64  
	u []int64    
	v []int64    
	z int64      
	f    []int    
	fBar []int    
	p    []int    
	c    []int    
	pi   []int64  
}
func (a *LSAP) Assign() ap.Permutation {
	a.solve()
	p := make(ap.Permutation, a.n)
	copy(p, a.f)
	return p
}
func (a *LSAP) Cost() int64 {
	return a.z
}
func (a *LSAP) DualPrices() ap.Int64DualPrices {
	u := make([]int64, a.n)
	v := make([]int64, a.n)
	copy(u, a.u)
	copy(v, a.v)
	return ap.Int64DualPrices{U: u, V: v}
}