Cod sursa(job #1871778)

Utilizator matzul98Socaciu Mihai matzul98 Data 7 februarie 2017 17:31:21
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");

int n;//<= 6 milioane
//int arr[1001] = {};
int idx = 1, beg = 1, fin = n;//Pozitia secventei cautate

void Citire()
{
   f>>n;
}

void SSM()
{
   int X;
   int sum = 0;//Suma numerelor fara resetare
   int max1 = -int(2e9);

   for(int i = 1; i <= n; i++)
   {
      f>>X;
      if(sum >= 0)
      {
         //Numerele pana acum prezinta o secventa si putem continua
         sum += X;
      }
      else
      {
         //Anulam secventa anterioara si o luam de la inceput
         sum = X;
         idx = i;
      }

      if(sum > max1)
      {
         max1 = sum;
         beg = idx;
         fin = i;
      }
   }

   g<<max1<<" "<<beg<<" "<<fin;
   /*
   cout<<"Suma este: "<<max1<<endl;
   cout<<"Indicii sunt: "<<beg<<" "<<fin;*/
}

int main()
{
   Citire();
   SSM();
}