Cod sursa(job #1883555)

Utilizator veveve ve veve Data 18 februarie 2017 05:56:14
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <iostream>
#include <fstream>
#include<climits>
using namespace std;

int main()
{
    int i,s,a,smax,n,ist,isf,istmax,isfmax;
    ifstream f("ssm.in");ofstream g("ssm.out");

    f>>n;
    smax=INT_MIN; s=0;istmax=0;isfmax=0;
    for (i=1;i<=n;i++)
    {
      f>>a;
      s=s+a;
      if(s<0) //suntem la inceput de secventa in dreptul unui numar negativ
        {ist=i;isf=i;}
      else isf=i;  //secventa creste c
      if(s>smax)   //am gasit o secventa de suma maxima
         {smax=s; istmax=ist; isfmax=isf;}
      if (s<0) {s=0;ist=i+1;}  // la pasul urmator incepem o secventa noua
    }
    g<<smax<<" "<<istmax<<" "<<isfmax;
    f.close();g.close();
    return 0;
}