Cod sursa(job #1578925)

Utilizator Y0da1NUME JMECHER Y0da1 Data 24 ianuarie 2016 13:40:22
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>
using namespace std;
int n;
int main()
{
    int i, s=0, beg, fin, smax=-2e9, P1, P2, nr;
    ifstream g ("ssm.in");
    ofstream h ("ssm.out");
    g>>n;
    g>>nr;
    s=nr;
    beg=fin=1;
    if(s>smax)
        {
            smax=s;
            P1=beg;
            P2=fin;
        }
    for(i=2;i<=n;i++)
    {
        g>>nr;
        if(s+nr>=nr)//dc am avut o suma pozitiva inainte
        {
            s+=nr;
            fin=i;
        }
        else //am gasit un nr negativ mai mic decat suma precedenta
        {
            s=nr;
            beg=fin=i;
        }
        if(s>smax)
        {
            smax=s;
            P1=beg;
            P2=fin;
        }

    }
    h<<smax<<" "<<P1<<" "<<P2;
    g.close();
    h.close();
    return 0;
}