Cod sursa(job #2117299)

Utilizator maria15Maria Dinca maria15 Data 28 ianuarie 2018 19:21:41
Problema Oo Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>

using namespace std;

int n, i, a[100003], s, v[100003], maxim;

ifstream fin("oo.in");
ofstream fout("oo.out");

void back(int i){
    if(i<=n && a[i] == 0){
        /// mai intai, iau ouale de pe pozitiile i si i+1
        s += v[i]+v[i+1];
        if(s>maxim)
            maxim = s;
        a[i-1]++;
        a[i]++;
        a[i+1]++;
        a[i+2]++;
        /// pozitia i+2 este blocata, deci trec la i+3
        back(i+3);
        /// acum consider ca nu iau ouale de pe i si i+1
        /// retrag un blocaj de pe pozitiile respective
        a[i-1]--;
        a[i]--;
        a[i+1]--;
        a[i+2]--;
        s -= v[i]+v[i+1];
        /// trec la i+1
        back(i+1);
    }
}

int main(){
    fin>>n;
    for(i=1;i<=n;i++)
        fin>>v[i];
    back(2);
    fout<<maxim;
    return 0;
}