Cod sursa(job #1929525)

Utilizator Vlad1111Sbengheci Vlad-Andrei Vlad1111 Data 17 martie 2017 19:01:54
Problema Subsecventa de suma maxima Scor 0
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);
    cout<<s_max<<" "<<inc<<" "<<sf;
    return 0;
}