Cod sursa(job #2085547)

Utilizator andr3i_kaabAndrei Ciineanu andr3i_kaab Data 10 decembrie 2017 13:07:37
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 1.06 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

ifstream f("ssm.in");
ofstream g("ssm.out");

/*
// ca  la Savu
int n, a[6000002], suma, maxa, ifix; // viz[];

int main()
{
    int i, j, st, dr;

    f>>n;
    for (i=1; i<=n; i++)
      {
          f>>j;

          if (suma<0)
          {
              suma=j;
              ifix=i;
          }
          else
              suma+=j;

          if (maxa<suma)
          {
              maxa=suma;
              st=ifix;
              dr=i;
          }
      }
    g<<maxa<<" "<<st<<" "<<dr;
    return 0;
}
*/

// recursiv
int n, a[6000002], suma, maxa, ifix;

int main()
{
    int i, j=0, st, dr;

    f>>n;
    for (i=1; i<=n; i++)
      f>>a[i];

    for (i=1; i<=n; i++)
    {
        a[i]+=a[i-1];
        if (maxa<a[i]-j)
        {
            maxa=a[i]-j;
            st=ifix+1;
            dr=i;
        }
        if (j>a[i])
        {
            j=a[i];
            ifix=i;
        }
    }
    g<<maxa<<" "<<st<<" "<<dr;
}