Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- int poisk_grass (int N, long long *grass)
- {
- long long *sum_grass = new long long[N+1];
- sum_grass[2] = 0;
- sum_grass[3] = grass[0] + grass[2];
- sum_grass[4] = grass[0] + grass[3];
- for (long long k = 5; k <= N; k++)
- sum_grass[k] = max(sum_grass[k-2], sum_grass[k-3]) + grass[k-1];
- return sum_grass[N];
- }
- int main()
- {
- int N;
- cin >> N;
- long long *grass = new long long[N];
- for (long long i = 0; i<N; i++)
- cin >> grass[i];
- if (N == 0)
- cout << 0;
- else if (N == 1 || N == 2)
- cout << grass[0];
- else cout << poisk_grass(N, grass);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement