Cod sursa(job #2733219)

Utilizator maria_neagoieMaria Neagoie maria_neagoie Data 30 martie 2021 09:45:53
Problema Buline Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <cstdio>
using namespace std;
const int NMAX=200005;
int v[2*NMAX];
int main()
{
    freopen("buline.in","r",stdin);
    freopen("buline.out","w",stdout);
    int n,i,x,sc,smax,st,dr,stmax,drmax,culoare,l;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%d%d",&x,&culoare);
        if(culoare==0) //negru
            v[i]=-x;
        else //alb
            v[i]=x;
    }
    for(i=1;i<n;i++)
        v[i+n]=v[i];
    sc=smax=v[1];
    st=stmax=drmax=1;
    for(dr=2;dr<2*n;dr++)
    {
        if((sc+v[dr])>=v[dr])
            sc=sc+v[dr];
        else
        {
            sc=v[dr];
            st=dr;
        }
        if(sc>smax)
        {
            smax=sc;
            stmax=st;
            drmax=dr;
        }
    }
    l=drmax-stmax+1;
    printf("%d %d %d",smax,stmax,l);
    return 0;
}