Cod sursa(job #1938986)

Utilizator rauliacobanRaul Iacoban rauliacoban Data 25 martie 2017 13:05:36
Problema Subsecventa de suma maxima Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
/*

*/
#include<fstream>
#include<climits>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
long long s[6000005],m[6000005];
int v[6000005];
int main ()
{
    long long n,i,mare=LONG_MIN,x,xm,ym;
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>v[i];
        s[i]=s[i-1]+v[i];
        m[i]=min(m[i-1],s[i]);
        //mare=max(s[i]-m[i-1],mare);
        if(s[i]<m[i-1])
        {
            m[i]=s[i];
            x=i+1;
        }
        if(s[i]-m[i-1]>mare)
        {
            mare=s[i]-m[i-1];
            ym=i;
            xm=x;
        }


        //fout<<v[i]<<"  "<<s[i]<<"  "<<m[i]<<endl;
    }
    fout<<mare<<' '<<xm<<' '<<ym<<'\n';


    fin.close();
    fout.close();
    return 0;
}