Pagini recente » Cod sursa (job #730926) | Cod sursa (job #137922) | Cod sursa (job #633455) | Cod sursa (job #59596) | Cod sursa (job #389723)
Cod sursa(job #389723)
#include<fstream>
using namespace std;
int n, a[100001], c[100001], maxim;
void ReadData()
{
int i;
ifstream fin("oo.in");
fin>>n;
for(i=0; i<n; i++)
fin>>a[i];
fin.close();
}
int Maxim2(int x, int y)
{
if(x>y)
return x;
return y;
}
void Solve()
{
int i, k;
c[0] = 0;
c[1] = a[0]+a[1];
c[2] = c[1];
c[3] = c[1];
for(i=4; i<n-1; i++)
{
k = a[i]+a[i-1]+c[i-3];
c[i] = Maxim2(k, c[i-1]);
}
maxim = c[i-2];
c[0] = 0;
c[1] = a[1]+a[2];
c[2] = c[1];
c[3] = c[1];
for(i=4; i<n-1; i++)
{
k = a[i]+a[i-1]+c[i-3];
c[i] = Maxim2(k, c[i-1]);
}
maxim = Maxim2(maxim, c[i-2]);
c[0] = 0;
c[1] = a[0]+a[n-1];
c[2] = c[1];
c[3] = c[1];
for(i=4; i<n-1; i++)
{
k = a[i]+a[i-1]+c[i-3];
c[i] = Maxim2(k, c[i-1]);
}
maxim = Maxim2(maxim, c[i-2]);
}
int main()
{
ReadData();
if(n==2) maxim = a[0]+a[1];
else
if(n==3)
{
maxim = Maxim2(a[0]+a[1],a[1]+a[2]);
maxim = Maxim2(maxim, a[0]+a[2]);
}
else Solve();
ofstream fout("oo.out");
fout<<maxim<<"\n";
return 0;
}