Cod sursa(job #2002572)

Utilizator georgitTreista Georgiana georgit Data 20 iulie 2017 12:27:07
Problema Buline Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <fstream>

using namespace std;
int n,i,sum,maxi,mini,a[200001],p,pi,pf,semn,l,sumtotal,sum2,maxi2,l2,pi2,p2,mini2;
int main()
{
    ifstream f("buline.in");
    ofstream g("buline.out");
    f>>n;
    maxi=-int(2e9);p=1;
    for(i=1; i<=n; i++)
    {
        f>>a[i]>>semn;
        if(semn==0)
            a[i]=-a[i];
     sum=sum+a[i];
     sumtotal=sumtotal+a[i];
     if(maxi<sum-mini)
            { maxi=sum-mini;
              pi=p;
              l=i-p+1; }
        if(sum<mini)
            { mini=sum;
              p=i+1; }
    }
    for(i=1;i<=n;i++)
        a[i]=-a[i];
    maxi2=-int(2e9);p=1;
    for(i=1; i<=n; i++)
    {
     sum2=sum2+a[i];
     if(maxi2<sum2-mini2)
            { maxi2=sum2-mini2;
              pi2=p2;
              l2=i-p2+1; }
        if(sum2<mini2)
            { mini2=sum2;
              p2=i+1; }
    }
    maxi2=sumtotal+maxi2;
    pi2=pi2+l2;
    l2=n-l2;
    if(maxi>maxi2)
        g<<maxi<<" "<<pi<<" "<<l;
    else
        g<<maxi2<<" "<<pi2<<" "<<l2;
    f.close();
    g.close();
    return 0;
}