Cod sursa(job #634986)

Utilizator cristianalex81Cristian Alexandru cristianalex81 Data 18 noiembrie 2011 03:52:56
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
#include <stdio.h>
#include<fstream>

using namespace std;

int main()
{
    int i,x,n;
    int best_sum,actual_sum,best_start=0,best_finish=0,actual_start=0;
    ifstream f("ssm.in");
    ofstream g("ssm.out");
    //freopen("ssm.in","r",stdin);
    //freopen("ssm.out","w",stdout);
    //scanf("%d",&n);
    f>>n;
    //initialize the sums
    //scanf("%d",&x);
    f>>x;
    actual_sum = x;
    best_sum = x;
    for (i=1;i<n;i++)
    {
        //scanf("%d",&x);
        f>>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);
    g<<best_sum<<" "<<best_start+1<<" "<<best_finish+1<<"\n";
    return 0;
}