Cod sursa(job #1938973)

Utilizator rauliacobanRaul Iacoban rauliacoban Data 25 martie 2017 13:01:33
Problema Subsecventa de suma maxima Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
/*

*/
#include<fstream>
#include<climits>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");

int main ()
{
    long long n,i,mare=LONG_MIN,s[60005]={0},m[60005]={0},x,y,xm,ym,v[60005]={0};
    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;
}