Cod sursa(job #634985)

Utilizator cristianalex81Cristian Alexandru cristianalex81 Data 18 noiembrie 2011 03:45:49
Problema Subsecventa de suma maxima Scor 75
Compilator c Status done
Runda Arhiva educationala Marime 0.78 kb
#include <stdio.h>

int main()
{
    int i,x,n;
    int best_sum,actual_sum,best_start=0,best_finish=0,actual_start=0;
    freopen("ssm.in","r",stdin);
    freopen("ssm.out","w",stdout);
    scanf("%d",&n);
    //initialize the sums
    scanf("%d",&x);
    actual_sum = x;
    best_sum = x;
    for (i=1;i<n;i++)
    {
        scanf("%d",&x);
        if ((actual_sum + x)>x)//have a better sum
        {
            actual_sum+=x;
        }
        else//reset the sum
        {
            actual_sum = x;
            actual_start = i;
        }
        if (actual_sum > best_sum)
        {
            best_sum = actual_sum;
            best_start = actual_start;
            best_finish = i;
        }
    }
    printf("%d %d %d\n",best_sum,best_start+1,best_finish+1);
    return 0;
}