Cod sursa(job #1721817)

Utilizator andru47Stefanescu Andru andru47 Data 26 iunie 2016 16:22:01
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <bits/stdc++.h>

using namespace std;
int n,x;
int main ()
{
    freopen ("ssm.in", "r", stdin);
    freopen ("ssm.out", "w", stdout);
    scanf("%d\n", &n);
    bool pozitiv = false;
    int pozf,pozzf,suma=0,maxactual=0,maxnr=INT_MIN,pnr=0,P1,P2;
    for (int i = 1; i<=n; ++i)
    {
        scanf("%d",&x);
        if (x>maxnr)
        {
            maxnr = x;
            pnr = i;
        }
        if(i==1)maxactual = x,pozf = i,pozzf = i;
        suma +=x;
        if (suma>maxactual)
        {
            maxactual = suma;
            P1 = pozf;
            P2 = i;
        }
        if (suma<0)
            suma = 0,pozf = i+1,pozzf=i+1;
    }
    if (maxnr>maxactual)
        printf("%d %d %d\n",maxnr,pnr,pnr);
    else printf("%d %d %d\n",maxactual,P1,P2);
    return 0;
}