Pagini recente » Cod sursa (job #895871) | Cod sursa (job #3178768) | Cod sursa (job #233847) | Cod sursa (job #1054129) | Cod sursa (job #1136082)
#include<fstream>
using namespace std;
ifstream in("oo.in");
ofstream out("oo.out");
int n, v[100002], suma[100002], aleg[2][100002];
void citire(){
in>>n;
for (int i=1; i<=n; i++)
in>>v[i];
}
void rez(){
suma[1]=v[1]+v[n];
for (int i=2; i<=n; i++)
suma[i]=v[i-1]+v[i];
aleg[0][n]=suma[n];
aleg[0][n-1]=suma[n-1];
aleg[0][n-2]=suma[n-2];
aleg[1][n]=1;
aleg[1][n-1]=1;
aleg[1][n-2]=0;
int ind;
for (int i=n-3; i>=3; i--){
ind=i+3;
for (int k=i+4; k<=i+6; k++){
if (aleg[0][k]>aleg[0][ind])
ind=k;
}
aleg[0][i]=suma[i]+aleg[0][ind];
aleg[1][i]=aleg[1][ind];
}
int i=3, m=0, j=3;
while (i>=0 && j<=n){
if (aleg[1][j]==0){
if (aleg[0][j]>m)
ind=j;
i--;
}
j++;
}
aleg[0][1]=aleg[0][ind]+suma[1];
aleg[0][2]=aleg[0][ind]+suma[2];
m=aleg[0][1];
for (int i=2; i<=12 && i<=n; i++)
if (aleg[0][i]>m)
m=aleg[0][i];
out<<m;
}
int main(){
citire();
rez();
return 0;
}