Cod sursa(job #1764816)

Utilizator dragomirmanuelDragomir Manuel dragomirmanuel Data 25 septembrie 2016 22:03:59
Problema Subsecventa de suma maxima Scor 55
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,dr,poz,i,Lg,n;

   freopen("ssm.in", "r", stdin);
   freopen("ssm.out", "w", stdout);
   cin>>n;

   for(i=0;i<n;++i)
    cin>>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;
}