Cod sursa(job #2084809)

Utilizator OlivianOlivian Dan Cretu Olivian Data 9 decembrie 2017 12:03:15
Problema Buline Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<cstdio>
using namespace std;
int main()
{
    freopen("buline.in","r",stdin);
    freopen("buline.out","w",stdout);
    int n,v[400007],s[400007],x,y,lsol=0,pozsol=0,sol=-100007;
    scanf("%d",&n);
    s[0]=0;
    for(int i=1;i<=n;i++)
    {
        scanf("%d %d",&x,&y);
        if(y)
        {
            v[i]=x;
            v[n+i]=x;
        }
        else
        {
            v[i]=-x;
            v[n+i]=-x;
        }
    }
    for(int i=1;i<=2*n;i++)
    {
        s[i]=s[i-1]+v[i];
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=i;j<=(i+n-1);j++)
        {
            if((s[j]-s[i-1])>sol)
                {
                    sol=s[j]-s[i-1];
                    pozsol=i;
                    lsol=j-i+1;
                }
        }
    }
    printf("%d %d %d",sol,pozsol,lsol);
}