public static ArrayList<ArrayList<Integer>> Biparticao(Graph grafo) {
		int[] Cor = new int[grafo.getNlc()];

		for (int i = 0; i < grafo.getNlc(); i++) {
			if (Cor[i] == 0) {
				Cor[i] = 1;
				if (!Biparticao_Visit(grafo, i, Cor, 2)) {
					return null;
				}
			}
		}
		
		ArrayList<ArrayList<Integer>> resultado = new ArrayList<ArrayList<Integer>>();
		resultado.add(new ArrayList<Integer>());
		resultado.add(new ArrayList<Integer>());
		for (int i = 0; i < Cor.length; i++) {
			if (Cor[i] == 1) {
				resultado.get(0).add(i);
			} else {
				resultado.get(1).add(i);
			}
		}
		
		return resultado;
	}