package Main;


public class main 
{
	public static void main(String[] args)
	{
		
		//On pose les données de Rentabilités
		double[][] Rentabilite =
			{
				{0,0.56,0.9,1.3,1.56,1.8,2.04,2.26},
				{0,0.5,0.82,1.1,1.3,1.5,1.6,1.7},
				{0,0.3,0.5,0.8,1,1.24,1.46,1.64},
				{0,0.5,0.66,0.84,0.96,1.06,1.12,1.16}
			};
	
		
		//On Intégre ces données dans une matrice
		double[][] ResultatMatrice = new double[14][14];

		for (int i=0;i <=7;i++)
		{
			ResultatMatrice[0][i] = Rentabilite[0][i];
			ResultatMatrice[1][i] = Rentabilite[0][i];
		}
		
		int dep;
		int arr;
		double val_max = 0;
		int col_max;
		int t = 2;
		int NombresBoucles=0;
		int NombresBouclesMax=0;
	
		for (int p=0;p<=2;p++)
		{
			for (int j=0;j<=7;j++)
			{
				dep = 0;
				arr = j;
				val_max= 0;
				col_max = 0;
					
				while (arr>=0 )
				{
					if(ResultatMatrice[t-2][dep]+Rentabilite[p+1][arr]>val_max)
					{
						val_max = ResultatMatrice[t-2][dep]+Rentabilite[p+1][arr];
						col_max = dep;
						NombresBoucles++;
					}
					
					dep++;
					arr--;
					NombresBouclesMax++;
				}
				
				ResultatMatrice[t][j] = val_max;
				ResultatMatrice[t+1][j] = col_max;
			}
			
			t = t+2;
		}
			
		double result1 = 7.0-ResultatMatrice[7][7];		
		double result2 = 7.0-ResultatMatrice[5][(int) ResultatMatrice[7][7]]-result1;
		double result3 = 7.0-ResultatMatrice[3][(int) ResultatMatrice[5][(int) ResultatMatrice[7][7]]]-result2;
		
		double result4 = 7.0-result1-result2-result3;
		
		System.out.println("I1 : "+result4+" M€");
		System.out.println("I2 : "+result3+" M€");
		System.out.println("I3 : "+result2+" M€");
		System.out.println("I4 : "+result1+" M€");
		
		System.out.println("Il y a "+NombresBoucles+" Calculs");
		System.out.println("Il y a "+NombresBouclesMax+" Calculs si on test toutes les possibilités");
	}
}
