We improve further the running time of [1]} to \(2^{O(k)}\cdot n\cdot \eta \cdot |\Pi |\)  in Section REF .
First, using a suitable data structure, we improve the running time to \(2^{O(k)} n\cdot \eta \) .
More specifically, the algorithm of [1]} computes \(2^{O(k)}\)  initial functions \(f\) , and then computes a function \(\bar{f}\) , which is called
a smallest pre-feasible function, for each initial function \(f\) .
The procedure for computing \(\bar{f}\)  consists of \(O(n\eta )\)  iterations, and in each iteration, we update the value of \(f(F)\)  for
a specific face \(F\) .
Here, each iteration takes \(O(|\Pi |)\)  time because we are required to find a face-edge path \(\pi \in \Pi \)  with
\(f(F)^{-1}\cdot \phi (\pi )\cdot \phi (F^{\prime }) \notin \Gamma (\pi )\)  and \(f(F)\ne \epsilon \) ,
where \(F\)  and \(F^{\prime }\)  are the end faces of \(\pi \) .
Then we update the value of \(f(F)\)  or \(f(F^{\prime })\)  accordingly. Instead of considering all face-edge paths in \(\Pi \) ,
we can find such a face-edge path \(\pi \)  in amortized constant time by maintaining a suitable data structure.
This improves the running time to \(2^{O(k)} n\cdot \eta \) .
