Cod sursa(job #2017288)

Utilizator DavidLDavid Lauran DavidL Data 31 august 2017 19:05:51
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
#define MAX 6000005
using namespace std;
ifstream fi("ssm.in");
ofstream fo("ssm.out");

int x[MAX],S[MAX];
int finalStart,finalStop,finalSum=-2000000000;
int main()
{
    int n;
    fi>>n;
    for (int i=1; i<=n; i++)
        fi>>x[i];
    for (int i=1; i<=n; i++)
        S[i]=S[i-1]+x[i];
    int poz=0;
    for (int ult=1; ult<=n; ult++)
    {
        if (S[ult-1]<S[poz])
            poz=ult-1;
        if (S[ult]-S[poz]>finalSum)
        {
            finalStart=poz+1;
            finalStop=ult;
            finalSum=S[ult]-S[poz];
        }
    }
    fo<<finalSum<<" "<<finalStart<<" "<<finalStop;
    fi.close();
    fo.close();
    return 0;
}