Почему данный код не решает задачу "Максимальное произведение подпоследовательности"?

Не могу понять почему получаю неверный ответ. Я же проверяю все возможные варианты произведения подпоследовательности длины k.

Условие: Дана последовательность целых чисел и число K. Найдите максимальное произведение подпоследовательности размером K.

5

1 2 3 4 5 (Такой тест на вывод должен давать 20 (4 * 5))

2

Мое решение:

int main()
{
    int n;
    cin >> n;
    vector<int> data;
    for (int i = 0; i < n; i++) {
        int a;
        cin >> a;
        data.push_back(a);
    }
    int k;
    cin >> k;

    int result = 1;
    int idx1 = 0;
    int idx2 = k;
    for (int i = 0; i < k; i++) {
        result *= data[i];
    }
    while (idx2 < n) {
        int temp = 1;
        if (data[idx1] != 0) {
            temp = (result / data[idx1]) * data[idx2];
        }
        else {
            for (int j = idx1 + 1; j < idx2 + 1; j++) {
                temp *= data[j];
            }
        }
        if (temp > result) {
            result = temp;
        }
        idx1 += 1;
        idx2 += 1;
    }
    cout << result;

    return 0;
}

Ответы (0 шт):