Cod sursa(job #3268909)

Utilizator IonicaDavidIonica David IonicaDavid Data 18 ianuarie 2025 00:19:27
Problema Subsecventa de suma maxima Scor 55
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.14 kb
#include <fstream>
#include <iostream>


using namespace std;

struct ura
{
    unsigned start,finish;
    int suma;
}curent, best;

unsigned i,n;
int aux;
int main()
{
    ifstream f("ssm.in");
    f>>n;
    curent.start=1;
    f>>aux;
    curent.suma+=aux;
    for(i=2;i<=n;++i)
    {
        f>>aux;
         if(curent.suma>best.suma ||(curent.suma==best.suma && (i-1-curent.start<best.finish-best.start)) )
        {
            best.suma=curent.suma;
            best.start=curent.start;
            best.finish=i-1;

        }
        if(aux+curent.suma<0)
       {

        curent.suma=aux;
            curent.start=i;
       }
        else
        {
            curent.suma+=aux;
            //++curent.start;
        }
        //cout<<curent.suma<<' '<<aux<<endl;
    }

  /*if(curent.suma>best.suma ||(curent.suma==best.suma && (i-1-curent.start<best.finish-best.start)) )
        {
            best.suma=curent.suma;
            best.start=curent.start;
            best.finish=i-1;

        }*/
        ofstream g("ssm.out");
    g<<best.suma<<' '<<best.start<<' '<<best.finish;
    g.close();

}