@Override
	public int backlog(double e, double s, double c) {
		double L = e + s + c;
		double n = s + 2*c;
		
		double next = 0;
		double previous = -1;
		
		while(previous < next) {
			
			double p1 = Math.pow(1 - (e/L), n);
			
			
			double p2 = Math.pow((L-e-s) / (L-e), (n-s));
			
			for(int i = 0; i < s; i++) {
				double calc = (n - i) / (L-e);
				p2 = p2 * calc;
			}
			
			double p3 = 0.0;
			
			for(double k = 0; k <= c; k++) {
				for(double v = 0; v <= (c-k); v++) {
					
					double sum = Math.pow(-1, k+v)*Math.pow((c-k-v) / (c), (n-s-k));
					
					for(int i = 0; i < k; i++) {
						sum = sum * (( (c-i)/(k-i) ) * ( (n-s-i)/c )) ;
					}
					
					p3 = p3 + sum;
				}
			}
			
			previous = next;
			
			next = combinatorial(p1, L, e) * combinatorial(p2, (L-e), s) * p3;
			
			n++;
		}
		
		return (int)(n - 2);
	}