По условию есть какое то количество кувшинок с разным количеством травы на каждой. оно может быть положительным и отрицательным. кузнечик изначально стоит на первой кувшинке, а прыгать может только либо через одну кувшинку, либо через две. нужно найти максимальное количество травы которую соберет кузнечик по пути к последней кувшинке.
на вход дается число n(количество кувшинок), и n разных чисел(количество травы на кувшинках). вывести нужно максимальное количество.
На одном из тестов программа выдает неправильный ответ. Какие там входные данные я не знаю, поэтому не могу понять что не так. помогите найти ошибку
#include <iostream>
using namespace std;
int max(int one, int two)
{
if (one > two)
return one;
return two;
}
int main()
{
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
int N;
int a[1000];
cin >> N;
for (int i = 0; i < N; i++)
cin >> a[i];
a[2] = a[0] + a[2];
a[3] = a[0] + a[3];
a[4] = a[2] + a[4];
for (int i = 5; i < N; i++)
a[i] += max(a[i - 2], a[i - 3]);
cout << a[N - 1];
}