Cod sursa(job #2006658)

Utilizator refugiatBoni Daniel Stefan refugiat Data 31 iulie 2017 08:25:57
Problema Buline Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream si("buline.in");
ofstream so("buline.out");
int v[200005];
int main()
{
    int n;
    si>>n;
    int x,y;
    int s1=0,s2=0,s3=0,s=0;
    for(int i=1;i<=n;++i)
    {
        si>>x>>y;
        v[i]=x*(y?1:-1);
        s3+=v[i];
    }
    int l1,l2,p,l;
    for(int i=1;i<=n;++i)
    {
        s1+=v[i];
        s2-=v[i];
        ++l1;
        ++l2;
        if(s1<v[i])
        {
            s1=v[i];
            l1=1;
        }
        if(s2<-v[i])
        {
            s2=-v[i];
            l2=1;
        }
        if(s1>s)
        {
            s=s1;
            p=i-l1+1;
            l=l1;
        }
        if(s2+s3>s)
        {
            s=s3+s2;
            p=i+1;
            l=n-l2;
        }
    }
    so<<s<<' '<<p<<' '<<l;
    return 0;
}