Cod sursa(job #1764835)

Utilizator dragomirmanuelDragomir Manuel dragomirmanuel Data 25 septembrie 2016 22:24:54
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>
#include <cstdio>

using namespace std;

const int Max = 6000100;

int x[Max];

int main()
{ long long SMax,Sum,st,poz,i,Lg;
int n;

   freopen("ssm.in", "r", stdin);
   freopen("ssm.out", "w", stdout);
   scanf("%d",&n);

   for(i=0;i<n;++i)
    scanf("%d",&x[i]);

   for(SMax=Sum=x[0], st=poz=0, Lg=i=1; i<n ; ++i)
   {
       if(Sum<0)
       {
           Sum=x[i];
           st=i;
       }
       else
            Sum+=x[i];

        if(SMax<Sum)
           {
               SMax=Sum;
               poz=st;
               Lg=i-st+1;
           }

   }

   cout<<SMax<<" "<<st+1<<" "<<st+Lg;
    return 0;
}