Cod sursa(job #2872940)

Utilizator ATudorAAparaschivei Tudor Andrei ATudorA Data 18 martie 2022 10:24:08
Problema Oo Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.45 kb
#include <fstream>

using namespace std;
ifstream f("oo.in");
ofstream g("oo.out");
int v[100005];
int t[100005];
bool ok[100005];
int main()
{
    int n,i,minn=1000,nr=0;
    f>>n;
    for(i=1;i<=n;i++)
    {
        f>>v[i];
    }
    v[0]=v[n]; v[n+1]=v[1]; v[n+2]=v[2];
    for(i=1;i<=n;i++)
    {
        t[i]=v[i-1]+v[i+2];
        if(t[i]<minn)
        {
            minn=t[i];
        }
        //g<<t[i]<<" ";
    }
    while(minn<1000)
    {
        for(i=1;i<=n;i++)
        {
            if(t[i]==minn && ok[i]==0 && ok[i+1]==0)
            {
                nr=nr+v[i]+v[i+1];
                //g<<i<<" "<<nr<<'\n';
                ok[i-1]=1; ok[i]=1;
                ok[i+1]=1; ok[i+2]=1;
                if(i==1)
                {
                    ok[n]=1;
                }
                if(i==n-1)
                {
                    ok[1]=1;
                }
                if(i==n)
                {
                    ok[1]=1; ok[2]=1;
                }
            }
        }
        minn=1000;
        ok[0]=ok[n]; ok[n+1]=ok[1]; ok[n+2]=ok[2];
        for(i=1;i<=n;i++)
        {
            if(ok[i]==0 && ok[i+1]==0)
            {
                t[i]=v[i-1]+v[i+2];
            }
            else
            {
                t[i]=1000;
            }
            if(t[i]<minn)
            {
                minn=t[i];
            }
        }
    }
    g<<nr;
    return 0;
}