Cod sursa(job #2007014)

Utilizator Andrei_CotorAndrei Cotor Andrei_Cotor Data 1 august 2017 17:15:59
Problema Buline Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include<fstream>
using namespace std;
ifstream fi("buline.in");
ofstream fo("buline.out");
int n,i,s,x,a,sum,ind,bst1,b1,sf1,A[200001],bst2,b2,sf2;
int main()
{
    fi>>n;
    for(i=1; i<=n; i++)
    {
        fi>>x>>a;
        if(a==1)
            x=-x;
        s-=x;
        A[i]=x;
    }
    bst1=-1000000000;
    //ssmin
    for(i=1; i<=n; i++)
    {
        if(sum<0)
        {
            sum=A[i];
            ind=i;
        }
        else
            sum+=A[i];
        if (bst1<sum)
        {
            bst1=sum;
            b1=ind;
            sf1=i;
        }
    }
    //ssm
    bst2=-1000000000;
    sum=0;
    ind=0;
    for(i=1; i<=n; i++)
    {
        if(sum<0)
        {
            sum=-A[i];
            ind=i;
        }
        else
            sum-=A[i];
        if (bst2<sum)
        {
            bst2=sum;
            b2=ind;
            sf2=i;
        }
    }
    if(s+bst1>bst2)
        fo<<s+bst1<<" "<<sf1+1<<" "<<n-(sf1-b1+1)<<"\n";
    else
        fo<<bst2<<" "<<b2<<" "<<b2+sf2-1<<"\n";
    fi.close();
    fo.close();
    return 0;
}