Cod sursa(job #662905)

Utilizator anca1243Popescu Anca anca1243 Data 17 ianuarie 2012 11:25:12
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("ssm.in");
ofstream out ("ssm.out");
const int N=6000001;
int v[N],s[N],n;
int main()
{
    int i,smax=-1000000000,sc=0,stmax=0,drmax=0,stc=1;
    in>>n;
    for (i=1;i<=n;i++)
    {
        in>>v[i];
    }
    for (i=1;i<=n;i++)
    {
        if (sc<0)
        {
            sc=v[i];
            stc=i;
        }
        else sc+=v[i];
        if (sc>smax||(sc==smax&&i-stc<drmax-stmax))
        {
            smax=sc;
            drmax=i;
            stmax=stc;
        }
    }
    out<<smax<<' '<<stmax<<' '<<drmax;
    return 0;
}