Cod sursa(job #2853387)

Utilizator alex.andrei.stoican@gmail.comStoican Alexandru [email protected] Data 20 februarie 2022 11:12:46
Problema Subsecventa de suma maxima Scor 55
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>

using namespace std;
ifstream in ("ssm.in");
ofstream out ("ssm.out");
long long int sum[6000001] = {0}, maxs[6000001]={-1000000000};
int main()
{
    long long int n, smin, smax, a,b,x;
    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];
          a =  i+1;
      }

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

    }

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

    return 0;
}