Cod sursa(job #2458201)

Utilizator Tudor_PascaTudor Pasca Tudor_Pasca Data 19 septembrie 2019 20:54:22
Problema Oo Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.24 kb
#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;

    if(n == 1)
    {
        in >> i;
        out << i;
        return 0;
    }
    if(n == 2)
    {
        in >> i >> n;
        out << i+n;
        return 0;
    }

    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[n] = d[1] = d[2] = v[1] + v[2];

        for(i = 3; i < n; i++)
                d[i] = max(d[i-1], d[i-3] + v[i-1] + v[i]);

        out << d[n-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];

            for(i = 4; i < n; i++)
            {
                d[i] = max(d[i-1], d[i-3] + v[i-1] + v[i]);
            }

            out << d[n-1] << '\n';
        }
        else
        {
            d[1] = d[n-1] = d[n] = v[n-1]+v[n];

            for(i = 4; i < n; i++)
                d[i] = max(d[i-1], d[i-3] + v[i-1] + v[i]);

            out << d[n-1] << '\n';
        }
    }

    return 0;
}