Cod sursa(job #1560341)

Utilizator Vlad1111Sbengheci Vlad-Andrei Vlad1111 Data 2 ianuarie 2016 16:35:17
Problema Subsecventa de suma maxima Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <iostream>
#include <cstdio>

using namespace std;

int n,x,s[100010],mx,mi1,mi2;

int main()
{
    freopen("ssm.in","r",stdin);
    freopen("ssm.out","w",stdout);
    mx=1;
    mi1=mi2=0;
    scanf("%d",&n);
    for(int i=1; i<=n; i++)
    {
        scanf("%d",&x);
        s[i]+=s[i-1]+x;
        if(s[i]>s[mx])
        {
            mx=i;
            if(s[mi2]<s[mi1])
            mi1=mi2;
        }
        else if(s[i]<s[mi1] && i<mx)
                mi1=i;
        else if(s[i]<s[mi2] && i>mx)
            mi2=i;
    }
    printf("%d %d %d",(s[mx]-s[mi1]),mi1+1,mx);
    return 0;
}