Cod sursa(job #2127863)

Utilizator MatiPopa Mati Mati Data 11 februarie 2018 10:10:44
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int v[6000002],n,i,s,in,maxim=-2000000000,ins,sf,ok;
int main()
{
    fin>>n;
    for(i=1; i<=n; i++)
        fin>>v[i];

    for(i=1; i<=n; i++)
        if(v[i]>0) ok=1;

    if(ok==1)
    {
        for(i=1; i<=n; i++)
        {
            s+=v[i];
            if(s<0)
            {
                s=0;
                in=i+1;
            }
            else
            {
                if(s>maxim)
                {
                    maxim=s;
                    ins=in;
                    sf=i;
                }
            }
        }
    }

    else
    {
        for(i=1;i<=n;i++)
        if(maxim<v[i]) {maxim=v[i]; ins=i; sf=i;}
    }


    fout<<maxim<<" "<<ins<<" "<<sf;
    return 0;
}