Cod sursa(job #645514)

Utilizator cosmin.tarsichiTarsichi Cosmin cosmin.tarsichi Data 9 decembrie 2011 20:44:57
Problema Subsecventa de suma maxima Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.96 kb
#include <stdio.h>
#include <stdlib.h>
#include<limits.h>

int max_sum(long n,long *start,long *end,FILE *fin)
{
    int sum=0,maxsum=INT_MIN,x;
    long i,temp=1;
    for(i=1;i<=n;i++)
    {
        fscanf(fin,"%d",&x);
        if(sum<0)
        {
            sum=x;
            temp=i;
        }
        else
            sum +=x;
        if(maxsum<sum)
        {
            maxsum=sum;
            *start=temp;
            *end=i;
        }
    }
    return maxsum;
    
}
int main() 
{
    FILE *fin,*fout;
    int maxsum;
    long n,start,end;//,i,temp=1;
    fin=fopen("ssm.in","r");
    fout=fopen("ssm.out","w");
    if(!fin||!fout)
    {
        printf("Eroare\n");
        return 0;
    }
    fscanf(fin,"%lu",&n);
    if(n<1)
    {
        printf("Eroare\n");
        return 0;
    }
    maxsum=max_sum(n,&start,&end,fin);
    fprintf(fout,"%d %lu %lu",maxsum,start,end);
    fclose(fin);
    fclose(fout);
    return 0;
}