Cod sursa(job #2326727)

Utilizator andaraluca2001Anda Epure andaraluca2001 Data 23 ianuarie 2019 22:10:34
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <fstream>
using namespace std;
const int MAX=7000005;
int n,v[MAX];

ifstream in("ssm.in");
ofstream out("ssm.out");
int main()
{
    in>>n;

    for(int i=1;i<=n;i++) in>>v[i];

    int bestsum=-2e9, s=0, start, end, ind;

    for(int i=1;i<=n;i++)
    {
        if(s<0)
        {
            s=v[i];
            ind=i;
        }

        else s+=v[i];

        if(bestsum<s)
        {
            bestsum=s;
            start=ind;
            end=i;
        }

        if(bestsum==s && (i-ind+1)<(end-start+1))
        {
            start=ind;
            end=i;
        }
    }

    out<<bestsum<<" "<<start<<" "<<end;
    return 0;
}