Cod sursa(job #1304598)

Utilizator pepsiM4A1Ozturk Arif pepsiM4A1 Data 29 decembrie 2014 00:11:16
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <stdio.h>
int a[6000001];
int s[6000001];
int n;
int main()
{
    FILE *fin,*fout;
    fin=fopen("ssm.in","r");
    fout=fopen("ssm.out","w");
    fscanf(fin,"%d",&n);
    for(int i=1;i<=n;i++) fscanf(fin,"%d",&a[i]);
    s[1]=a[1];
    for(int i=2;i<=n;i++)
    {
        if(a[i]+s[i-1]>0&&s[i-1]>=0)
        {
            s[i]=a[i]+s[i-1];
        }
        else
        {
            s[i]=a[i];
        }
    }
    int sum=0,posinc;
    for(int i=1;i<=n;i++)
    {
        if(sum<s[i])
        {
            sum=s[i];
            posinc=i;
        }
    }
    fprintf(fout,"%d ",sum);
    for(int i=posinc-1;i>=0;i--)
    {
        if(s[i]<0)
        {
            fprintf(fout,"%d %d\n",i+1,posinc);
            break;
        }
    }
}