Cod sursa(job #892540)

Utilizator paulpetanPetan Paul paulpetan Data 26 februarie 2013 10:28:01
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

int v[6000001];
int main()
{
    int n,sum,i,sumax,lg=1,poz=1,st=1,ok=0,ma;
    ifstream f("ssm.in");
    ofstream g("ssm.out");
    f>>n;
    ma=-100000;
    for(i=1;i<=n;i++)
    {
        f>>v[i];
        if(v[i]>=0)ok=1;
        ma=max(v[i],ma);
    }
    if(ok==0)
    {
        g<<ma<<" ";
        for(i=1;i<=n;i++)
        {
            if(v[i]==ma)g<<i<<" "<<i<<'\n';
        }
    }
    if(ok==1)
    {
    sum=v[1];
    sumax=sum;
    for(i=2;i<=n;i++)
    {
        if(sum<0)
        {
            sum=v[i];
            st=i;
        }
        else
        {
            sum=sum+v[i];
            if(sum>sumax)
            {
                sumax=sum;
                poz=st;
                lg=i-st+1;
            }
        }
    }
    g<<sumax<<" "<<poz<<" "<<poz+lg-1<<'\n';
    }
    return 0;
}