Cod sursa(job #1480958)

Utilizator dareare14Daria Petca dareare14 Data 3 septembrie 2015 15:27:51
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
//#include <iostream>
#include <fstream>
using namespace std;

ifstream cin("ssm.in");
ofstream cout("ssm.out");

int n,s[6000010],sm[6000010],i,j,suma,st,dr,p1,p2,Smax;

int main()
{
    cin>>n;
    for (i=1;i<=n;i++)
        cin>>s[i];
    Smax = -1<<30;
    int st = 1;
    int dr = 1;
    int sm = s[1];
    if ( sm > Smax )
    {
        Smax = sm;
        p1 = st;
        p2 = dr;
    }
    while ( dr < n )
    {
        if ( sm > 0 )
        {
            ++dr;
            sm += s[dr];
        }
        else
        {
            ++dr;
            st = dr;
            sm = s[dr];
        }
        if ( sm > Smax )
        {
            Smax = sm;
            p1 = st;
            p2 = dr;
        }
    }
    cout<<Smax<<' '<<p1<<' '<<p2<<'\n';
    return 0;
}