protected void saveBest() {
		
		try {
			
			if (runBestIndividual == null) 
				throw new IOException("No run best individual");
			
			List<Individual> bestIndividuals = new ArrayList<Individual>(); 
			
			File inputFolder = new File("results/input");
			File outputFolder = new File("results/output");
			if (!inputFolder.exists()) inputFolder.mkdirs();
			if (!outputFolder.exists()) outputFolder.mkdirs();
			
			for (File file : inputFolder.listFiles()) {
				Individual individual = new Individual();
				individual.readInputFile(file.getPath());
				individual.calculateFitness();
				bestIndividuals.add(individual);
			}
			
			runBestIndividual.calculateFitness();
			runBestIndividual.writeInputFile(
					"results/input/HMO-projekt-input-last.txt"
			);
			runBestIndividual.writeOutputFile(
					"results/output/HMO-projekt-output-last.txt"
			);
			bestIndividuals.add(runBestIndividual);
			
			Collections.sort(bestIndividuals);
			
			int rank = 1;
			for (Individual individual : bestIndividuals) {
				
				if (rank <= 5) {
					individual.writeInputFile(
							"results/input/HMO-projekt-input-"+rank+".txt"
					);
					individual.writeOutputFile(
							"results/output/HMO-projekt-output-"+rank+".txt"
					);
					rank++;
				}
				
			}
			
		} catch (IOException e) {
			e.printStackTrace();
		}

	}