LargestProduct
10
14
FIND
- find(0, n)
- find(n/2, n-n/2)
- find((n-n/2)/2, (n-n/2)-(n-n/2)/2))
- find((n-n/2)/2+1, (n-n/2)-(n-n/2)/2-1)
- find(n/2+1, n-n/2-1)
- find((n-n/2-1)/2, (n-n/2-1)-(n-n/2-1)/2)
- find((n-n/2-1)/2+1, (n-n/2-1)-(n-n/2-1)/2-1)
25
INIT
- bool exist[N] = false;
- stack ans = empty;
- int a = n / 2, b = a + 1;
- find(a, n - a), find(b, n - b);
SEARCH
- void find (int n1, int n2)
- IF-ELSE
- !exist[n1]
- ans.push(n1);
- exist[n1] = true;
- exist[n1]
- int a = n2 / 2, b = a + 1;
- find(a, n2 - a);
- exist[b] = true, find(b, n2 - b), exist[b] = false;
CHECK
Algorithm/LargestProduct