Cod sursa(job #2002573)

Utilizator georgitTreista Georgiana georgit Data 20 iulie 2017 12:27:43
Problema Buline Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 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;
}