Cod sursa(job #3366813)
| Utilizator | Data | 4 octombrie 2026 14:36:27 | |
|---|---|---|---|
| Problema | Oo | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.57 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("oo.in");
ofstream fout("oo.out");
int n;
int a[100001];
int dpBetween(int l, int r){
int dp=0, dp1=0, dp2=0, dp3=0;
for(int i = l+1; i <= r; i++){
dp = max(dp, dp3 + a[i-1] + a[i]);
dp3 = dp2;
dp2 = dp1;
dp1 = dp;
}
return dp1;
}
int main() {
fin>>n;
for(int i = 1; i <= n; i++)
fin>>a[i];
fout<<max(dpBetween(2, n), max(dpBetween(4, n - 1) + a[1] + a[2], dpBetween(3, n - 2) + a[1] + a[n]));
return 0;
}
