Cod sursa(job #2255964)

Utilizator stefan1anubystefan popa stefan1anuby Data 7 octombrie 2018 19:29:14
Problema Subsecventa de suma maxima Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>
#include <iostream>
using namespace std;
ifstream in("ssm.in");
ofstream out("ssm.out");

int main()
{
    int n,i,x,s=0,smaxright=0,smaxleft=0,smax=0,left=1;
    in>>n;
    for(i=1; i<=n; i++)
    {
        in>>x;
        s+=x;
        if(s<=0)
        {
            s=0;
            left=i+1;
        }
        else
        {
            if(smax<s)
            {
                smaxleft=left;
                smaxright=i;
                smax=s;
            }
            else if(smax==s)
            {
                if(smaxright-smaxleft>i-left)
                {
                    smaxleft=left;
                    smaxright=i;
                    smax=s;
                }
            }
        }
        //cout<<s<<" "<<left<<" "<<i<<endl;
    }
    out<<smax<<" "<<smaxleft<<" "<<smaxright;
    return 0;
}