Cod sursa(job #863792)

Utilizator Walrus21andrei Walrus21 Data 24 ianuarie 2013 06:26:37
Problema Subsecventa de suma maxima Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <stdio.h>
#include <math.h>
#include <algorithm>

using namespace std;

FILE *f=fopen("ssm.in","r");
FILE *g=fopen("ssm.out","w");

int i,n,smax,pi,ps,v[6000000],st[6000000];

int max(int a,int b)
{
    if(a>b) return a;
    else return b;
}

int main()
{
    smax=-2000000000;
    fscanf(f,"%d",&n);
    for(i=1;i<=n;i++)
     fscanf(f,"%d",&v[i]);
    for(i=1;i<=n;i++)
    {
        st[i]=max(st[i-1]+v[i],v[i]);
        if((st[i]==v[i]) and (st[i]>smax)) pi=i;
        if(st[i]>smax)
        {
            smax=st[i];
            ps=i;
        }
    }
    fprintf(g,"%d %d %d",smax,pi,ps);
    fclose(g);
    return 0;
}