Cod sursa(job #2854282)

Utilizator alex.andrei.stoican@gmail.comStoican Alexandru [email protected] Data 21 februarie 2022 10:06:32
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>

using namespace std;
ifstream in ("ssm.in");
ofstream out ("ssm.out");
int sum[6000001] = {0}, maxs[6000001]={-1000000000};
int main()
{
    int n, smin, smax, a=0,b=0,x, ant=0;
    int  i;
    in >> n;

    for (i =  1; i <= n; i++)
    {
        in >> x;
        sum[i] = sum[i-1] + x;
    }

    smin=sum[0];
    smax=-100000000;
    for (i = 1; i <= n; i++)
    {
      maxs[i]=sum[i]-smin;
      if (smin > sum[i])
      {
          smin=sum[i];
          if (a < b)
          ant = a;

          a =  i+1;
          if (a > n)
            a = b;
      }

      if (smax < maxs[i])
      {
          smax=maxs[i];
          b=i;
      }
    }

    if (a > b)
        a = ant;

    out  << smax << " " <<a<< " " << b ;

    return 0;
}