Cod sursa(job #1795427)

Utilizator AnduB08Boldisor Andu AnduB08 Data 2 noiembrie 2016 13:55:20
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.87 kb
#include <fstream>
using namespace std;
ifstream f("buline.in");
ofstream g("buline.out");
int v[6000010],n,st,dr,i,s,ss,stt,drr,ok,a,l,lmax,u;
int main()
{
    f>>n;
    for(i=1;i<=n;++i)
        {
            f>>v[i]>>a;
            if(a==0)
            {
                v[i]=-v[i];
            }
        }
    for(i=1;i<=n;++i)
    {
        if(v[i]>=0)
        {
            ok=1;
            break;
        }
    }
    if(ok==0)
    {
    st=1;
    l=1;
    ss=-2000000000;
    for(i=1;i<=n;++i)
    {
        if(s<0)
        {
            s=0;
            st=i;
            l=1;
        }
            s=s+v[i];
            if(ss<s)
            {
                ss=s;
                stt=st;
                lmax=l;
                u=i;
            }
    }
    for(i=1;i<u;++i)
    {
        if(s<0)
        {
            s=0;
            st=i;
            l=1;
        }
            s=s+v[i];
            if(ss<s)
            {
                ss=s;
                stt=st;
                lmax=l;
            }
    }
    g<<ss<<" "<<stt<<" "<<lmax;
    }
    else
    {

    st=1;
    l=1;
    ss=-2000000000;
    for(i=1;i<=n;++i)
    {
        if(s<0)
        {
            s=v[i];
            st=i;
            l=1;
        }
        else
        {
            s=s+v[i];
            l++;
            if(ss<s)
            {
                ss=s;
                stt=st;
                u=i;
            }
        }
    }
    for(i=1;i<u;++i)
    {
        if(s<0)
        {
            s=v[i];
            st=i;
            l=1;
        }
        else
        {
            s=s+v[i];
            l++;
            if(ss<s)
            {
                ss=s;
                stt=st;
                lmax=l;
            }
        }
    }
    g<<ss<<" "<<stt<<" "<<lmax;
    }
    return 0;
}