Cod sursa(job #2421907)

Utilizator Alex.PAlexandru Pacurar Alex.P Data 16 mai 2019 17:25:29
Problema Oo Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <stdio.h>
#include <stdlib.h>
#define Nmax 100002

using namespace std;

int v1[Nmax];
int v2[Nmax];
int d1[Nmax];
int d2[Nmax];

int max(int a, int b){
    if(b>a)
        a=b;
    return a;
}

/// a o o o - |X X|

int main()
{
    FILE *fin, *fout;
    fin=fopen("oo.in","r");
    fout=fopen("oo.out","w");
    int n,i;
    fscanf(fin,"%d",&n);
    fscanf(fin,"%d",&v1[1]);
    for(i=2;i<n;i++){
        fscanf(fin,"%d",&v1[i]);
        v2[i-1]=v1[i];
    }
    fscanf(fin,"%d",&v2[i-1]);
    int sol=0;
    for(i=2;i<n;i++){
        d1[i]=v1[i]+v1[i-1];
        int add=0;
        if(i-3>0)
            add=max(add,d1[i-3]);
        if(i-4>0)
            add=max(add,d1[i-4]);
        if(i-5>0)
            add=max(add,d1[i-5]);
        d1[i]+=add;

        d2[i]=v2[i]+v2[i-1];
        add=0;
        if(i-3>0)
            add=max(add,d2[i-3]);
        if(i-4>0)
            add=max(add,d2[i-4]);
        if(i-5>0)
            add=max(add,d2[i-5]);
        d2[i]+=add;

        sol = max(sol, d1[i]);
        sol = max(sol, d2[i]);
    }
    fprintf(fout,"%d",sol);
    fclose(fin);
    fclose(fout);
    return 0;
}