Cod sursa(job #1312704)

Utilizator adiXMGemene Adrian adiXM Data 9 ianuarie 2015 21:01:46
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 1.21 kb
#include <fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int a[6000005];
int s[6000005];
int main()
{
    int n,i,k,maax=-2000000000,stanga=0,stg=0,dreapta,sumf=0,sum=0,miin=0,x;
    f>>n;
    for(i=1;i<=n;i++)
    {
        f>>a[i];
        s[i]=s[i-1]+a[i];
    }
    for(i=1;i<=n;i++)
    {
        x=s[i]-s[stg];
        if(miin>s[i])
        {
            miin=s[i];
            stg=i;
        }
        if(x>maax)
        {
            maax=x;
            stanga=stg+1;
            dreapta=i;
        }
        else
            if(x==maax)
            {
                int drp=i,stp=stg+1;
                if(stp<stanga)
                {
                    stanga=stp;
                    dreapta=i;
                }
                else
                    if(stp==stanga && drp<dreapta)
                        dreapta=i;

            }
    }
    /*for(i=stanga;i<=dreapta;i++)
    {
            a[i]=a[i]*(-1);
            sum+=a[i];
    }
    for(i=dreapta+1;i<=n;i++)
        sumf+=a[i];
    for(i=1;i<=stanga-1;i++)
            sumf+=a[i];
    g<<stanga<<" "<<dreapta<<"\n"<<sumf+sum;*/
    g<<maax<<" "<<stanga<<" "<<dreapta;
    return 0;
}