#include <iostream>

using namespace std;

int mul(int * arr, int shift, int N)
{
    switch (N)
    {
        case 1:
            return arr[shift];
        break;

        case 2:
            return (arr[shift] * arr[shift + 1]);
        break;

        default:
            int M = N / 2;
            return (mul(arr, shift, M) * mul(arr, shift + M, N - M));
    }
}

int main()
{
	int array[] = {5, 4, 3, 2, 1};
	
	cout << mul(array, 0, 5) << endl;
	
	return 0;
}