https://www.acmicpc.net/problem/2156 


#include<iostream>

#include<vector>

#include<algorithm>


using namespace std;


vector<int> arr;

vector<int> dp;


int main(void)

{

int i,k,t;


cin >> t;


arr.resize(t+1,0);

dp.resize((t/3)+2,0);


i = t;


while (t--)

cin >> arr[i-t-1];


dp[1] = arr[0];


for (i = 2, k = 2; k < dp.size(); i += 3, k++)

dp[k] = dp[k - 1] + max(arr[i - 1] + arr[i + 1], arr[i]);

cout << dp[k-1] << endl;


return 0;

}