Cod sursa(job #678213)

Utilizator CrilaTurtoi Cristian Crila Data 11 februarie 2012 10:53:23
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <stdio.h>

using namespace std;

int n,bestSUM=-800000,min,ind;

struct sir
{
    int in,sume,best;
}s[800000];

int main()
{
    freopen("ssm.in","r",stdin);
    freopen("ssm.out","w",stdout);
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        scanf("%d",&s[i].in);
    for(int i=1;i<=n;i++)
        s[i].sume=s[i].in+s[i-1].sume;
    for(int i=1;i<=n;i++)
    {
        s[i].best=s[i].sume-min;
        if(min>s[i].sume)
            min=s[i].sume;
        if(bestSUM<s[i].best)
        {
            bestSUM=s[i].best;
            ind=i;
        }
    }
    min=0;
    int indMIN;
    for(int i=1;i<=ind;i++)
        if(s[i].sume<min)
        {
            min=s[i].sume;
            indMIN=i+1;
        }
    printf("%d %d %d",bestSUM,ind,indMIN);
    return 0;
}