public int getLongestPath() {
        int node = sink;
        int score = 0;
        List<Integer> listPath = new ArrayList<Integer>();
        int counter = 0;
        while (node != source) {
            listPath.add(node);
            //System.out.println(node);
            score = score + findHighestScoreForNode(node);
            node = findNodeWithHighestScore(node);
            if (node == -1) {
                removeAllBadNodes(listPath.get(counter));
                listPath = new ArrayList<Integer>();
                node = sink;
                score = 0;
                counter = -1;
                //System.out.println("start new");
            }
            counter++;
        }
        System.out.println(score);
        Collections.reverse(listPath);
        listPath.add(source);
        for (Integer i : listPath) {
            System.out.print(i + "->");
        }
        return score;
    }