Cod sursa(job #2514599)

Utilizator Botzki17Botocan Cristian-Alexandru Botzki17 Data 26 decembrie 2019 15:04:44
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <fstream>

using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
const int NMAX =  6000000;
int v[NMAX+5];

int main()
{
    int i, n, suma, sumamax, stmax, drmax, st, dr;
    fin>>n;
    for(i =1; i <=n; i ++)
       fin>>v[i];
   suma = v[1];
   sumamax = suma;
   stmax = st = dr = 1;
   drmax = dr;
   for(i=2;i<=n;i++)
   {
        if(suma + v[i] >= v[i])
        {
            ///e mai avantajos sa continui sa adaug la suma curenta
            dr = i;
            suma = suma + v[i];
        }
        else
        {
            ///e mai avantajos sa incep o noua suma de pe pozitia actuala
            st = dr = i;
            suma = v[i];
        }
        if(suma > sumamax)
        {
            ///schimbam parametrii pentru suma maxima
            drmax = dr;
            stmax = st;
            sumamax = suma;

        }
   }
   fout<<sumamax<<" "<<stmax<<" "<<drmax<<"\n";
      return 0;
}