Cod sursa(job #1575770)

Utilizator vergilius_beberindeie virgil vergilius_be Data 21 ianuarie 2016 20:32:28
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <stdio.h>
#include <math.h>
#include <climits>
using namespace std;
FILE *f,*g;
int main()
{

   f=fopen("ssm.in","r");
   g=fopen("ssm.out","w");
   int n;
   fscanf(f,"%d",&n);
    int nr=0;//in nr citesc cate un numar din fisier
    int suma_optima = INT_MIN;// suma cea mai buna pe care pot sa o obtin pentru un subsir
    int sum_int = 0;// suma intermediara
    int i,li, lf, poz_int;//limita initiala, limita finala si pozitia intermediara
    for(i=1;i<=n; i++)
    {
        fscanf(f,"%d",&nr);//citesc cate o valoare din fisier
        if (sum_int < 0) // daca suma intermediara devine negativa suma intermediara devine  nr
            sum_int = nr, poz_int = i;//
        else
            sum_int += nr;
        if (suma_optima < sum_int)
            suma_optima = sum_int, li = poz_int, lf = i;
    }

     fprintf(g,"%d %d %d",suma_optima,li,lf);
fclose(f);
fclose(g);
    return 0;
}