Pagini recente » oji_10_2015 | Cod sursa (job #1010308) | Cod sursa (job #697945) | Cod sursa (job #1296575) | Cod sursa (job #2458176)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("oo.in");
ofstream out("oo.out");
///hit the output with that
///OwO
int main()
{
int d[100001] = {0}, v[100001];
int n, i;
in >> n;
for(i = 1; i <= n; i++)
in >> v[i];
if(v[1]+v[2] > v[n-1]+v[n] && v[1]+v[2] > v[1]+v[n])
{
d[1] = d[2] = v[1] + v[2];
d[3] = d[n] = 0;
for(i = 4; i < n; i++)
{
d[i] = max(d[i-1], d[i-3] + v[i-1] + v[i]);
//cout << i << ' ' << d[i] << '\n';
}
out << d[n-1]-1 << '\n';
}
else
{
if(v[1]+v[n] > v[1]+v[2] && v[1]+v[n] > v[n-1]+v[n])
{
d[1] = d[n] = v[1]+v[n];
d[2] = max(d[1], v[1]+v[2]);
d[3] = max(d[2], v[2]+v[3]);
for(i = 4; i < n; i++)
d[i] = max(d[i-1], d[i-3] + v[i-1] + v[i]);
out << d[n-1]-1 << '\n';
}
else
{
d[n-1] = d[n] = v[n-1]+v[n];
d[1] = max(d[n], v[1] + v[n]);
d[2] = max(d[1], v[2] + v[1]);
d[3] = max(d[2], v[2] + v[3]);
for(i = 4; i < n; i++)
d[i] = max(d[i-1], d[i-3] + v[i-1] + v[i]);
out << d[n-1]-1 << '\n';
}
}
return 0;
}