private void buildSCC() {
   digraph.removeNode(n2);
   digraph.removeNode(n2 + 1);
   digraph.addNode(n2);
   digraph.addNode(n2 + 1);
   // TODO CHECK THIS PART
   for (int i = 0; i < n; i++) {
     if (free.get(i)) {
       digraph.addArc(n2, i);
     } else {
       digraph.addArc(i, n2);
     }
   }
   for (int i = n; i < n2; i++) {
     if (free.get(i)) {
       digraph.addArc(i, n2 + 1);
     } else {
       digraph.addArc(n2 + 1, i);
     }
   }
   SCCfinder.findAllSCC();
   nodeSCC = SCCfinder.getNodesSCC();
   digraph.removeNode(n2);
   digraph.removeNode(n2 + 1);
 }