Cod sursa(job #1417689)

Utilizator raduraraduIacob Radu raduraradu Data 10 aprilie 2015 19:56:52
Problema Subsecventa de suma maxima Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int n,a[6000001],s[6000001],min1[6000001],pozmin[6000001];
int main()
{
    int i;
    f>>n;
    min1[0]=a[1]+100000;
    for(i=1;i<=n;++i){
    f>>a[i];s[i]+=a[i]+s[i-1];
    if(s[i]<min1[i-1])
        {min1[i]=s[i];pozmin[i]=i;}
    else {min1[i]=min1[i-1];pozmin[i]=pozmin[i-1];}}

    int st,dr;
    int smax=-1;
    for(i=1;i<=n;i++)
        if(smax<s[i]-min1[i-1])
            {smax=s[i]-min1[i-1];st=pozmin[i-1];dr=i;}
        g<<(smax>=0?smax:0)<<" "<<st+1<<" "<<dr;
    return 0;
}