Cod sursa(job #1929526)

Utilizator Vlad1111Sbengheci Vlad-Andrei Vlad1111 Data 17 martie 2017 19:02:51
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <cstdio>
#define cout cerr
#define INF 0x3f3f3f3f
using namespace std;

int a[6000010];

void recursiv(int i,int n,int a[],int &inc,int &sf,int &s_max,int s,int linc)
{
    if(i<=n)
    {
        s+=a[i];
        if(s>s_max)
        {
            s_max=s;
            inc=linc;
            sf=i;
        }
        if(s<0)
        {
            s=0;
            linc=i+1;
        }
        recursiv(i+1,n,a,inc,sf,s_max,s,linc);
    }
}

int main()
{
    int n,inc,sf,linc,s_max,s;
    freopen("ssm.in","r",stdin);
    freopen("ssm.out","w",stdout);
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        scanf("%d",&a[i]);

    s_max=-INF;
    inc=sf=1;

    recursiv(1,n,a,inc,sf,s_max,0,1);
    printf("%d %d %d",s_max,inc,sf);
    return 0;
}