Cod sursa(job #1625394)

Utilizator AndreidgDragomir Andrei Valentin Andreidg Data 2 martie 2016 18:40:07
Problema Buline Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <fstream>
using namespace std;
ifstream f("buline.in");
ofstream g("buline.out");
    int i,j,p,P;
    int a[400001];
    int n,Nr,grad;
    long long s1=-9000000,s2=99999999,s=0;
    int Max=-9999999,Min=99999999;
    int lm,pm,lM,pM;
int main()
{
    f>>n;
    for(i=1;i<=n;i++)
    {
        f>>Nr>>grad;
        a[i]=Nr*(grad*2-1);
        s+=a[i];
    }
    for(i=1;i<=n;i++)
    {
        if(s1+a[i]>=a[i])
        {
            s1+=a[i];
        }
        else
        {
            s1=a[i];P=i;
        }
        if(s1>Max)
        {
            Max=s1;
            lM=i;
            pM=P;
        }
        if(s+a[i]<a[i])
        {
            s2+=a[i];
        }
        else
        {
            s2=a[i];p=i;
        }
        if(s2<Min)
        {
            Min=s2;
            lm=i;
            pm=p;
        }
    }
    if(s-Min<Max)
    {
        g<<Max<<" "<<pM<<" "<<lM-pM+1;
    }
    else
    {
        g<<s-Min<<" "<<lm+1<<" "<<n-lm+pm-1;
    }
    return 0;
}