Cod sursa(job #2607876)

Utilizator Andrei-27Arhire Andrei Andrei-27 Data 30 aprilie 2020 12:29:25
Problema Subsecventa de suma maxima Scor 85
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <iostream>
#include <fstream>
#define lll long long
using namespace std;

ifstream f("ssm.in");
ofstream g("ssm.out");

int main()
{
    lll x;
    lll n , i;
    f>>n;
    f>>x;
    lll suma_curenta = x;
    lll suma_trecuta = x;
    lll maxim = -1e16;
    lll prim = 1;
    lll ultim = 1;
    lll k = 1;
    n -- ;
    while(n)
    {
        f>>x;
        k++;
        suma_curenta = x + suma_trecuta;
        if( x > suma_curenta )
        {
            prim = k;
            ultim = k;
            suma_trecuta = x;
            if( x > maxim)
                maxim = x;
        }
        else if(x <= suma_curenta)
        {
            suma_trecuta = suma_curenta;
            if( suma_curenta > maxim )
            {
                maxim = suma_curenta;
                ultim = k;
            }
        }
        n--;
    }
    g<<maxim<<" "<<prim<<" "<<ultim;

    return 0;
}