Cod sursa(job #269777)

Utilizator alecmanAchim Ioan Alexandru alecman Data 3 martie 2009 13:31:53
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<stdio.h>

#define INPUT "ssm.in"
#define OUTPUT "ssm.out"
#define LL long long

FILE *fin = fopen(INPUT, "r"), *fout = fopen(OUTPUT, "w");

LL N, optim;
LL A;

void readData()
{
  fscanf(fin, "%lld", &N);

}

void solve()
{
  LL start = 0, Pmin = 0, Pmax = 0, Foptim;

  Foptim = -1;
  optim = 0;

  for(LL i = 0; i < N; ++i)
  {
    fscanf(fin, "%lld", &A);

    if(optim < 0)
    {
      optim = A;
      start = i;
    }
    else
      optim += A;

    if(Foptim < optim)
    {
      Foptim = optim;
      Pmin = start;
      Pmax = i;
    }
  }

  fprintf(fout, "%lld %lld %lld\n", Foptim, Pmin+1, Pmax+1);
}

int main()
{
  readData();

  solve();

  fclose(fin);
  fclose(fout);

  return 0;
}