Given a list of values arr, you are allowed to reduce two distinct elements by one, or reduce any element by 3 unless or until after operation element should be non negative. You can perform any operation any number of times. Determine the minimum value of (a1+1)*(a2+1)*(a3+1).....(an+1) (1-indexed) after applying operations optimally.
N = 10; 1<=ai<=20;
Can anyone figure out a decent approach on how to solve this?