Cod sursa(job #1628748)

Utilizator CronosClausCarare Claudiu CronosClaus Data 4 martie 2016 10:24:00
Problema Oo Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <fstream>

using namespace std;

ifstream f("oo.in");
ofstream g("oo.out");

int main()
{
    long int n,s=0,maxi;
    f>>n;
    short int v[n+1],max;
    for(int i=0;i<n;i++)
        f>>v[i];
    v[n]=v[0];
    bool k=1;
    while(k)
    {
        max=-1;maxi=-1;
        for(int i=0;i<n;i++)
            if(v[i]+v[i+1]>max && v[i]+v[i+1]!=0)
                {max=v[i]+v[i+1];maxi=i;}

        if(max>0 && maxi>=0)
        {
            s=s+max;
            if(maxi==n-1 || maxi==n-2)
            {
                v[n-2]=0;v[n-1]=0;v[n]=0;v[0]=0;
                if(maxi==n-1)
                    v[1]=0;
                if(maxi==n-2)
                    v[n-3]=0;
            }
            else
            {
                if(maxi==0)
                {
                    v[n]=0;v[maxi]=0;v[maxi+1]=0;v[maxi+2]=0;v[n-1]=0;
                }
                else
                {
                    v[maxi-1]=0;v[maxi]=0;v[maxi+1]=0;v[maxi+2]=0;
                }
            }
        }
        else
            k=0;
    }
    g<<s;
    return 0;
}