Pagini recente » Cod sursa (job #1528460) | Cod sursa (job #2391724) | Cod sursa (job #2917352) | Cod sursa (job #577798) | Cod sursa (job #1503415)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
vector<int> v;
int maxim(int a, int b, int c)
{
return max(max(a,b),c);
}
int stuff(int start, int end)
{
vector<int> w(v.size());
for(int i=0;i<3;i++)
{
w[start+i] = v[start-1+i] + v[start-2+i];
}
for(int i=start+3;i<=end;i++)
{
w[i] = v[i-1] + v[i-2] + maxim(w[i-3], w[i-4], w[i-5]);
}
return w[end];
}
int main ()
{
int n;
ifstream fin("oo.in");
ofstream fout("oo.out");
fin>>n;
v.resize(n+20);
for(int i=0;i<n;i++)
{
fin>>v[i];
}
for(int i=0;i<20;i++)
{
v[n+i]=v[i];
}
int mm=0;
for(int i=0;i<5;i++)
{
mm = max(mm, stuff(3+i, n+i));
}
fout<<mm;
fout.close();
return 0;
}
/*
xoox
^ ^
xoox
xoox
xoox
xoox
*/