private void checkSolution(ArrayList<Integer> idxList, List<ArrayList<Integer>> listOfGames){
		String change = "Improve Games: ";
		int costsOrg = sol.getCumulativeCost();
		List<List<Game>> oldSolution = sol.deepCopy();
		//
		iterationStep++;
		//
		for(int s=0; s<idxList.size(); s++){
			int a = idxList.get(s);
			change += changeGames(a, listOfGames);
		}
		int costs = sol.getCumulativeCost();
		boolean badConstraint = sol.checkConstraint();
		//
		if(orgSolutionFalse && !badConstraint){
			System.out.println("repair .... NEW SOLUTION (games exchange): "+costs);
			System.out.println(sol);
			orgSolutionFalse = (sol.checkConstraint());
			if(Util.protocolBoolean){
				Util.protocol += "repair .... NEW SOLUTION (games exchange): "+costs+"\n";
				Util.protocol += sol+"\n";
			}
		}
		else if((costsOrg<=costs) || badConstraint){
			sol.setSolution(oldSolution);
		}
		else{
			System.out.println(change+": "+costs);
			improvement = true;
			if(Util.protocolBoolean){
				Util.protocol += change+": "+costs+"\n";
			}
		}
	}