Cod sursa(job #2733234)

Utilizator CristeaCristianCristea Cristian CristeaCristian Data 30 martie 2021 09:57:58
Problema Buline Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>

using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
const int NMAX=400005;
int v[NMAX];
int main()
{
    int n,st,drmax,stmax,semn,i;
    long long maxim,sum;
    fin>>n;
    fin>>v[1]>>semn;
    if(semn==0)
        v[1]*=-1;
    v[n+1]=v[1];
    maxim=sum=v[1];
    stmax=drmax=1;
    st=1;
    for(i=2;i<=n;i++)
    {
        fin>>v[i]>>semn;
        if(semn==0)
            v[i]*=-1;
        v[i+n]=v[i];
    }
    for(i=2;i<=2*n;i++)
    {
        if(i-st+1>n)
        {
            sum-=v[st];
            st++;
        }
        sum+=v[i];
        if(sum<v[i])
        {
            sum=v[i];
            st=i;
        }
        if(maxim<sum && i-st+1<=n)
        {
            maxim=sum;
            drmax=i;
            stmax=st;
        }
    }
    fout<<maxim<<' '<<stmax<<' '<<drmax-stmax+1;
    return 0;
}