Cod sursa(job #1149033)

Utilizator contprobdaca nu ai 100p degeaba contprob Data 21 martie 2014 13:41:33
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 1.22 kb
#include<limits.h>
#include<stdio.h>
using namespace std;

// 6000005
#define dim 6000005

int main()
{
    freopen("ssm.in", "r", stdin);
    freopen("ssm.out", "w", stdout);

    int n,i,x,s,smax,j,st,dr,stmax,drmax;
    //int v[dim];
    //int s[dim];

    scanf("%d", &n);

    smax=INT_MIN;

    s=0;
    for(i=1;i<=n;++i)
    {
        scanf("%d", &x);

        if(s<0 && x>s)
        {
            s=x;
            st=i;
            dr=i;
        }
        else
        {
            if(s>smax)
            {
                smax=s;
                stmax=st;
                drmax=dr;
            }
            s+=x;
            ++dr;
        }
    }
    if(s>smax)
    {
        smax=s;
        stmax=st;
        drmax=dr;
    }

        //printf("%d ", x);
        /*if(x>s[i-1]) s[i]=x;
        else s[i]=s[i-1]+x;

        for(j=i;j>=1;--j)
        {
            su=s[i]-s[j-1];
            if(su>smax)
            {
                smax=su;
                st=j;
                dr=i;
            }
        }
    }*/
    /*printf("\n");
    for(i=1;i<=n;++i) printf("%d ", s[i]);
    printf("\n");*/

    printf("%d %d %d", smax, stmax, drmax);



    return 0;
}