Почему данный код не решает задачу "Максимальное произведение подпоследовательности"?
Не могу понять почему получаю неверный ответ. Я же проверяю все возможные варианты произведения подпоследовательности длины 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;
}