Cod sursa(job #2028912)

Utilizator vladcoroian2001Vlad Coroian vladcoroian2001 Data 28 septembrie 2017 20:28:39
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <stdio.h>

using namespace std;
FILE *fi=fopen("ssm.in","r");
FILE *fo=fopen("ssm.out","w");
int n,i,x,BEST[6000001],START[6000001],rez,first,last;

int main()
{
    fscanf(fi,"%d",&n);
    fscanf(fi,"%d",&x);
    BEST[1]=x;
    START[1]=1;

    for(i=2;i<=n;i++)
    {
        fscanf(fi,"%d",&x);
        if(BEST[i-1]+x>=x)
        {
            BEST[i]=BEST[i-1]+x;
            START[i]=START[i-1];
        }
        else
        {
            BEST[i]=x;
            START[i]=i;
        }
    }
    rez=BEST[1];
    first=1;
    last=1;
    for(i=1;i<=n;i++)
        if(rez<BEST[i])
        {
            rez=BEST[i];
            first=START[i];
            last=i;
        }
    fprintf(fo,"%d %d %d",rez,first,last);
    fclose(fi);
    fclose(fo);
    return 0;
}