Exemplo n.º 1
0
	void maxProduct(vector<int>& products, int n) {
		if(n == 1) return;
		if(products[n] != 0) return;
		int l = 1, r = n-1;
		while(l <= r) {
			if(products[l] == 0) maxProduct(products, l);
			if(products[r] == 0) maxProduct(products, r);
			products[n] = max(products[n], max(products[l], l)*max(products[r], r));
			l ++;
			r --;
		}
	}
Exemplo n.º 2
0
 int integerBreak(int n) {
     if(n == 1) return 1;
     vector<int> products(n+1, 0);
     products[0] = 1;
     products[1] = 1;
     maxProduct(products, n);
     return products[n];
 }
Exemplo n.º 3
0
void testMaxProduct(){
    int a[2] = {-4,-3};
    cout << maxProduct(a, 2) << endl;
}