Cod sursa(job #1076388)

Utilizator AlexNiuclaeNiculae Alexandru Vlad AlexNiuclae Data 10 ianuarie 2014 09:06:31
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <cstdio>

using namespace std;

int i,n,x,b[6000004],a[6000004],minx,miny,Max,mm;

int main()
{
    freopen("ssm.in","r",stdin);
    freopen("ssm.out","w",stdout);

    scanf("%d", &n);
    a[0]=0; b[0]=0;
    for (i=1;i<=n;i++)
     {
         scanf("%d", &x); if (i==1) mm=x;
         a[i]=a[i-1]+x;
         if (a[i]<mm) {b[i]=i; mm=a[i];}
                             else b[i]=b[i-1];
     }

    Max=a[1]-a[0]; minx=1; miny=1;

    for (i=1;i<=n;i++) if (Max<a[i]-a[b[i]]) {Max=a[i]-a[b[i]]; minx=b[i]+1; miny=i;}

    printf("%d %d %d", Max,minx,miny);

    return 0;
}