Cod sursa(job #1322974)

Utilizator Yasin_ibraimIbraim Yasin Yasin_ibraim Data 20 ianuarie 2015 16:11:03
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<stdio.h>
#include<limits.h>

int main()
{
    FILE *fin,*fout;
    fin=fopen("ssm.in","r");
    fout=fopen("ssm.out","w");
    int n,st=1,fi;
    long long bestsum=-INT_MAX;
    long long sum=0;
    fscanf(fin,"%d",&n);
    int a[n];
    for(int i=0;i<n;i++)    fscanf(fin,"%d",&a[i]);
    for(int i=0;i<n;i++)
    {
        sum+=a[i];
        if(sum<0)
               sum=0;
        else if(sum>bestsum)
        {
            bestsum=sum;
            fi=i+1;
        }
    }
    sum=0;
    bestsum=INT_MIN;
    for(int i=n-1;i>=0;i--)
    {
        sum+=a[i];
        if(sum<0)   sum=0;
        else if(sum>bestsum)
        {
            bestsum=sum;
            st=i+1;
        }
    }
    fprintf(fout,"%d %d %d",bestsum,st,fi);
}